【发布时间】:2016-10-21 21:56:53
【问题描述】:
我正在用 C# 编写一个程序,该程序必须检测和扫描人们贴在胸前的标签(使用安全摄像头)中的二维码,并且作为第二层安全措施,还必须捕获他们的脸并在一个数据库。现在,我能够很好地处理人脸识别,但程序一次无法读取多个二维码。我怎么能处理这个?我正在使用 ZXing 的库以及 Emgu.cv。有更好的选择吗? 我的二维码阅读代码是:
bitmap = frame.Bitmap;
txtQreader.Text = Qrreader(bitmap); //it's inside an if, not that it matters :p
private string Qrreader(Bitmap x)
{
BarcodeReader reader = new BarcodeReader { AutoRotate = true, TryHarder = true };
Result result = reader.Decode(x);
string decoded = result.ToString().Trim();
return decoded;
}
【问题讨论】:
-
您需要包含更多信息,以查看如何创建最小完整且可验证的示例stackoverflow.com/help/mcve 但我的猜测是您将整个图像传递给
Qrreader。您应该分割出图像中的每个 QR,然后一次将它们传递给Qrreader -
@andrew 不知道它缺少信息,对不起(堆栈的新手)。这正是我的问题。如何分割每个 QR。
-
欢迎来到 Stack。对于常规编程问题,这可能足够信息,但对于计算机视觉问题,您应该包括 3 张图像。
1. input 2. current (incorrect) output 3. desired output查看您的代码我没有发现任何问题,但显示图像将有助于揭示问题。如果您在一帧中传入带有多个二维码的整个frame,那么Qrreader可能只会解码它找到的第一个代码。我认为您需要识别每个二维码。然后创建一个只有二维码的子图,然后把子图发到Qrreader这个方法你试过了吗? -
@andrew 已经解决了,谢谢
标签: c# opencv computer-vision zxing emgucv