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

Android 使用openCV从照片中检测二维码问题,android,opencv,qr-code,Android,Opencv,Qr Code,我目前正在开发一款android应用程序,它应该能够从拍摄的照片中检测出二维码。无需解码二维码,因为只需校准相机即可。 我使用的是openCV,当我试图从原始下载的二维码图片中检测二维码时,效果很好。这就是我使用的代码: bitmap= BitmapFactory.decodeResource(getResources(),R.drawable.qrcodemitzeugs); Mat img =new Mat(); Utils.bitmapToMat(bitmap,img) Mat point

我目前正在开发一款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);
它返回了整个黑白图像,但仍然没有检测到二维码。 我做错什么了吗?或者这个问题有解决办法吗


在上传图片之前,我必须调整图片的大小,所以我解决了我的问题,将垫子的大小调整到最大1200x1200。显然,OpenCV QRCodeDetector只能处理介于约85x85和约1200x1200之间的垫子,其中QR码本身的大小必须至少为约80x80。我用原始二维码(尺寸为600x600)的图像对此进行了测试。我调整了它的大小,直到二维码不再被检测到

能否添加您正在使用的图像和返回的图像,以便我们更容易理解和帮助您。