gpt4 book ai didi

c++ - 检测到OpenCv QR码,但无法解码

转载 作者:行者123 更新时间:2023-12-02 10:36:29 24 4
gpt4 key购买 nike

我用OpenCV编写了一个简单的QrCode检测和解码代码。
但是我面临的问题是QR码被检测到,但无法通过以下图像进行解码(请参见底部)。

我编写的代码如下所示:

int main(int argc, char* argv[])
{
cv::Mat src = imread("scaled.png");

if(src.empty())
{
cout << "can not open " << "Picture" << endl;
return -1;
}

QRCodeDetector qrDecoder = QRCodeDetector();

std::string data;

data = qrDecoder.detectAndDecode(src);

if(data.length()>0)
{
cout << "data: " << data; //data should be STOP
}

return 0;
}

有人知道为什么可以检测到QR码但不能将其解码吗?

这是我使用的图像:

enter image description here

编辑:
我搜索了更多有关使用OpenCv进行QR码检测的信息,并发现这些信息可用于编码来自 https://docs.opencv.org/3.4.9/de/dc3/classcv_1_1QRCodeDetector.html的摘要
setEpsX(double epsX)
setEpsY(double epsY)

不幸的是文档非常糟糕,所以有人知道这两个参数是什么,并且它们是否可以解决我的问题?

最佳答案

我想我发现了问题:
我使用的图像的大小为2400x1600,难以解码。因此,我在解码图像之前调整了图像的大小,因此我的代码如下所示:

int main(int argc, char* argv[])
{
cv::Mat src = imread("scaled.png");

if(src.empty())
{
cout << "can not open " << "Picture" << endl;
return -1;
}
std::string data;
cv::resize(src,src, cv::Size(1600,1200));
QRCodeDetector qrDecoder = QRCodeDetector();



data = qrDecoder.detectAndDecode(src);

if(data.length()>0)
{
cout << "data: " << data; //data should be STOP
}

return 0;
}

关于c++ - 检测到OpenCv QR码,但无法解码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60080140/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com