从图像中提取字符

Sal*_*ady 6 c# image-processing image-segmentation


我试图从黑白图像中提取(不识别!)字符,
所以如果图像是123,我得到3个图像的数组,

它是一个重复的问题,我知道,但我无法找到我想要的东西,我也尝试通过codeproject查找,但无法找到一个有效的例子

http://www.codeproject.com/Articles/143059/Neural-Network-for-Recognition-of-Handwritten-Digi
源代码未完成


您的帮助非常感谢:)

Ret*_*unk 5

正如 Kenny 已经提到的,“连接组件标记”描述了一系列识别连接像素的算法。连接组件也称为“连接区域”或“斑点”,以及“轮廓”的相关概念。任何这样的算法不仅应该能够找到连接的前景像素的形状,而且应该能够找到由背景颜色的像素组成的形状内部的“洞”的存在。

http://en.wikipedia.org/wiki/Connected-component_labeling

该算法用于多个依赖图像处理的工程领域,包括计算机视觉、机器视觉和医学成像。如果您打算在图像处理上花费任何时间,您应该对这种算法感到非常熟悉并至少自己实现一次。

OpenCV 库有一个 findContours() 函数,可用于查找轮廓、轮廓内的轮廓等。
http://opencv.willowgarage.com/wiki/

如果您希望看到区域标记算法在起作用,请使用应用程序 ImageJ 查找对“细胞计数”的引用。生物细胞计数是区域标记在医学成像中的一个重要且经常被引用的应用。

http://rsbweb.nih.gov/ij/

考虑获取有关该主题的教科书,而不是在线学习零碎。研究连通分量(又名 blob)不可避免地会导致考虑二值化(又名阈值),它采用灰度或彩色图像并从中生成黑白图像。如果您正在处理来自相机的图像,那么照明就变得至关重要,这需要时间和修修补补来学习。

清理图像可能需要许多其他预处理步骤。预处理的需要取决于您的应用程序。

这是一本经常被推荐的教科书,它很好地涵盖了标准图像处理技术:

Gonzalez 和 Woods 的数字图像处理,第 3 版 http://www.imageprocessingplace.com/

去 addall.com 寻找便宜的副本。国际版更便宜。

如果图像中的字符(或其他形状)具有一致的大小和形状——例如,“A”始终为 40 像素高和 25 像素,并且机器以相同字体打印——那么您可以使用“归一化互相关”或模板匹配技术来识别一个或多个匹配形状的存在。这种技术可以作为一种非常粗糙的 OCR 工作,但有严重的局限性。

http://en.wikipedia.org/wiki/Template_matching