Upgrade to Pro — share decks privately, control downloads, hide ads and more …

FrenchKit 2017 - Update your reality with Visio...

Avatar for Julien Datour Julien Datour
September 23, 2017

FrenchKit 2017 - Update your reality with Vision an ARKit

Avatar for Julien Datour

Julien Datour

September 23, 2017
Tweet

More Decks by Julien Datour

Other Decks in Programming

Transcript

  1. The ask, the machinery and the results let request =

    VNDetectRectanglesRequest { request, error in guard let observations = request.results as? [VNRectangleObservation] else { return } observations.forEach { observation in let topLeft = observation.topLeft } } let handler = VNImageRequestHandler(ciImage: CIImage(), options: [:]) try? handler.perform([request])
  2. The ask, the machinery and the results let request =

    VNDetectRectanglesRequest { request, error in guard let observations = request.results as? [VNRectangleObservation] else { return } observations.forEach { observation in let topLeft = observation.topLeft } } let handler = VNImageRequestHandler(ciImage: CIImage(), options: [:]) try? handler.perform([request])
  3. The ask, the machinery and the results let request =

    VNDetectRectanglesRequest { request, error in guard let observations = request.results as? [VNRectangleObservation] else { return } observations.forEach { observation in let topLeft = observation.topLeft } } let handler = VNImageRequestHandler(ciImage: CIImage(), options: [:]) try? handler.perform([request])
  4. The ask, the machinery and the results let request =

    VNDetectRectanglesRequest { request, error in guard let observations = request.results as? [VNRectangleObservation] else { return } observations.forEach { observation in let topLeft = observation.topLeft } } let handler = VNImageRequestHandler(ciImage: CIImage(), options: [:]) try? handler.perform([request])
  5. The ask, the machinery and the results let request =

    VNDetectRectanglesRequest { request, error in guard let observations = request.results as? [VNRectangleObservation] else { return } observations.forEach { observation in let topLeft = observation.topLeft } } let handler = VNImageRequestHandler(ciImage: CIImage(), options: [:]) try? handler.perform([request])
  6. The ask, the machinery and the barcode let barcodeDetectionRequest =

    VNDetectBarcodesRequest { request, _ in guard let barcodeObservations = request.results as? [VNBarcodeObservation] else { return } barcodeObservations.forEach { barcodeObservation in guard let payload = barcodeObservation.payloadStringValue else { return } // ... }` } let handler = VNImageRequestHandler(ciImage: CIImage(), options: [:]) try? handler.perform([barcodeDetectionRequest])
  7. The ask, the machinery and the barcode let barcodeDetectionRequest =

    VNDetectBarcodesRequest { request, _ in guard let barcodeObservations = request.results as? [VNBarcodeObservation] else { return } barcodeObservations.forEach { barcodeObservation in guard let payload = barcodeObservation.payloadStringValue else { return } // ... }` } let handler = VNImageRequestHandler(ciImage: CIImage(), options: [:]) try? handler.perform([barcodeDetectionRequest])
  8. Plane detection done right func renderer(_ renderer: SCNSceneRenderer, didAdd node:

    SCNNode, for anchor: ARAnchor) { guard let anchor = anchor as? ARPlaneAnchor else { return } let surface = SurfaceNode(anchor: anchor) surfaces[anchor] = surface node.addChildNode(surface) }