2012-09-11 41 views
5

我基本上是用开源软件处理条形码。但是该工具有时无法检测到任何条码。在C#中检测空白图像(预期的图像是一个条形码)#

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

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

我检查过this这个问题,但建议是使用“概率霍夫线变换”,我发现我的情况有点矫枉过正。

我也检出了this但它有不安全的代码。 我正在寻找托管的C#解决方案。

回答

0

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

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

+1

'GetPixel()'和'unsafe'指针算术代码之间存在一个中间值,那就是'Marshal'类。请参阅以下答案:http://stackoverflow.com/a/1563170/860585 – Rotem

0

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