在c#中检测空白图像(预期图像是条形码)

时间:2012-09-11 13:23:15

标签: c# barcode imaging

我基本上使用开源软件处理条形码。但该工具有时无法检测到条形码。

所以我想自己检查图像是否真的是空白还是包含某种条形码。

我的图像是通过扫描生成的,它们只包含条形码(如果它们不是空白的)和扫描产生的一些噪声图像。所以我的问题甚至可以归结为检查图像是否包含大量浓缩的黑色像素,以区别于具有噪声的白色空间图像。

我已经检查了this这个问题,但建议是使用“概率Hough线变换”,我发现我的情况有点过分。

我还检查了this,但它有不安全的代码。 我正在寻找一个托管的C#解决方案。

3 个答案:

答案 0 :(得分:0)

你正在寻找的是计算机视觉,听起来很花哨,但现在非常简单(5年前它不是那么受欢迎而且有些困难)看看这些文章:

http://www.codeproject.com/Articles/28465/Easy-to-use-Wrapper-DLL-for-Intel-s-OpenCV-Library

http://www.chinhdo.com/20080910/detect-blank-images/

答案 1 :(得分:0)

您链接到的第二个示例仅使用unsafe代码来加速对位图中像素值的访问。您可以使用Bitmap的{​​{1}}方法轻松替换所有这些(缺点是这将非常慢,但它可能仍然足够快以达到您的目的)。

然而,就GetPixel()代码而言,没有理由担心使用它。 unsafe标记的唯一问题是某些用户(取决于他们的权限级别)可能无法运行代码,尽管我自己从未真正遇到过这个潜在的问题。

答案 2 :(得分:0)

您可以使用此C#库OpenSURF并查看SURF特征描述符向量的值。我不确定它是否“安全”