使用的二维码扫描是zxing.client
之前定位识别二维码时,某些图片不能识别的问题,原因是识别二维码前对图片进行了压缩,导致QRCode里的定位符失真而无法识别。
后来延伸到识别二维码的性能问题,有三点优化:
1.在CameraConfigurationManager的setDesiredCameraParameters里,调用parameters.setZoom(20);这样会使部分手机摄像头的preview size变小,由于待识别的像素变少了,从而提高了摄像头扫描的速度。
注意:PreviewCallback的onPreviewFrame处理每一帧数据时,由于preview的size改变了,需要从新从摄像头里获取,否则会crash。
2.DecodeHandler里识别二维码时,指定格式为DecodeFormatManager.QR_CODE_FORMATS,这样在检测二维码数据时,只匹配一种格式,会快一些。
3.摄像头在扫描二维码图片时,尽量能够使用持续对角,目前auto对焦不是特别准。
遇到一个模糊的二维码照片,经测试,需要匹配8-12帧图像才能匹配到二维码,而清晰的图片一般1-2帧就能匹配出来。使用了持续对焦后,对于模糊的图片,匹配的次数有明显降低。
网友评论