ios - QR Reader with VNDetectBarcodeRequest -


i've setup avcapturesession video data output , attempting use ios 11's vision framework read qr codes. camera setup avcapturesession is. abbreviate , show setting output.

let output = avcapturevideodataoutput() output.setsamplebufferdelegate(self, queue: capturequeue) capturesession.addoutput(output)  // did cvpixelbuffer oriented in portrait. // don't know if it's needed , i'm not sure matters anyway. output.connection(with: .video)!.videoorientation = .portrait 

so camera , running always. here code using perform vnimagerequesthandler qr codes.

func captureoutput(_ output: avcaptureoutput, didoutput samplebuffer: cmsamplebuffer, connection: avcaptureconnection) {     guard let pixelbuffer = cmsamplebuffergetimagebuffer(samplebuffer) else { return }     let imagerequesthandler = vnimagerequesthandler(cvpixelbuffer: pixelbuffer, orientation: .up, options: [:])      let qrrequest = vndetectbarcodesrequest { request, error in         let barcodeobservations = request.results as? [vnbarcodeobservation]         guard let qrcode = barcodeobservations?.flatmap({ $0.barcodedescriptor as? ciqrcodedescriptor }).first else { return }         if let code = string(data: qrcode.errorcorrectedpayload, encoding: .isolatin1) {             debugprint(code)         }     }      qrrequest.symbologies = [.qr]     try! imagerequesthandler.perform([qrrequest]) } 

i using qr code encodes http://www.google.com test. debugprint line prints out:

avgg\u{03}¢ò÷wwrævöövÆræ6öÐì\u{11}ì

i have tested same qr code avcapturemetadataoutput has been around while , method decodes qr code correctly. question is, have missed output getting?

(obviously use avcapturemetadataoutput solution, because can see works. doesn't me learn how use vision framework.)

most problem here:

if let code = string(data: qrcode.errorcorrectedpayload, encoding: .isolatin1)  

try use .utf8.

also suggest @ raw output of 'errorcorrectedpayload' without encoding. maybe has correct encoding.


Comments

Popular posts from this blog

javascript - Create a stacked percentage column -

Optimising Firebase database by automatically overwriting data -

javascript - Angular UI-Grid customTemplate directive causing rows to load slowly/? -