繁体   English   中英

使用openCV从照片中检测二维码问题

[英]QR code detection issue from photo using openCV

我目前正在开发一个 android 应用程序,它应该能够从拍摄的照片中检测到二维码。 不需要解码二维码,因为它只需要校准相机。 我正在使用 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);

但是当我在用智能手机的相机拍摄的照片上尝试使用相同的代码时,没有检测到二维码。 我搜索了一个解决方案,发现可能对比度不够高,因此使用以下代码将图片转换为二进制:

Imgproc.cvtColor(img,img2,Imgproc.COLOR_BGR2GRAY);
Imgproc.threshold(img2,img2,100,255,Imgproc.THRESH_BINARY);

它以黑白形式返回整个图像,但仍未检测到二维码。 我做错了什么还是有解决这个问题的方法?

我使用的其中一张图片在上传之前我必须调整图片大小

所以我解决了我的问题,将 Mat 调整为最大 1200x1200。 显然,OpenCV QRCodeDetector 只能处理大约之间的 Mats。 85x85 和约。 1200x1200,其中二维码本身的大小至少为约 80x80。 我用原始 QR 码的图像对此进行了测试,该图像的大小为 600x600。 我调整了它的大小,直到不再检测到 QR 码。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM