5

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

所以我想自己检查一下图像是否真的是空白的,或者它是否包含某种条形码。

我的图像是通过扫描产生的,它们只包含一个条形码(如果它们不是空白的)和一些扫描产生的噪声图像。所以我的问题甚至可以归结为检查图像是否包含大量集中的黑色像素,以将其与带有噪声的白色空间图像区分开来。

我已经检查了这个SO question,但建议是使用“概率霍夫线变换”,我发现这对我的情况来说有点矫枉过正。

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

4

3 回答 3

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/

于 2012-09-11T13:29:30.713 回答
0

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

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

于 2012-09-11T13:30:17.160 回答
0

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

于 2012-09-11T13:40:03.210 回答