【发布时间】:2019-12-01 10:11:14
【问题描述】:
我目前正在开发一个 android 应用程序,它应该能够从拍摄的照片中检测 QR 码。无需解码二维码,只需校准相机即可。 我正在使用openCV,当我尝试从原始下载的二维码图片中检测二维码时,它工作正常。这就是我使用的代码:
bitmap= BitmapFactory.decodeResource(getResources(),R.drawable.qrcodemitzeugs);
Mat img =new Mat();
Utils.bitmapToMat(bitmap,img)
Mat points= new Mat();
QRCodeDetector detector=new QRCodeDetector();
boolean data = detector.detect(img, points);
但是,当我在使用智能手机相机拍摄的照片上尝试使用相同的代码时,无法检测到 QR 码。我搜索了一个解决方案,发现可能对比度不够高,因此使用以下代码将图片转换为二进制:
Imgproc.cvtColor(img,img2,Imgproc.COLOR_BGR2GRAY);
Imgproc.threshold(img2,img2,100,255,Imgproc.THRESH_BINARY);
它以黑白返回整个图像,但仍未检测到 QR 码。 我做错了什么还是有解决这个问题的方法?
One of the images i used 我必须在上传之前调整图片大小
【问题讨论】:
-
您能否添加您正在使用的图像和返回的图像,以便我们更容易理解和帮助您。