写了快两年visionPro教程了,一直没写过光学字符识别与扫码之类的工具应用。我不写并不是说它不重要,而是觉得没必要用visionPro这么贵的程序去做个扫码识别文字的简单功能。用OpenCV等开源库就能很方便的实现扫码与光学字符识别这种功能,实在是没必要把钱浪费在这上面。前面写过一篇Halcon简单文字识别OCR的使用,大家可以借鉴下。
前几天有群员在说使用visionPro的CogOCRMaxTool工具识别文字的时候,出现分不开文字的情况,对此,解决方案有很多,我就用最简单的方案做个简单的CogOCRMaxTool的使用教程。
怎么读取图片这些我就不多说了,前面讲了很多,这里不讲了,我们直接看CogOCRMaxTool工具的设置。
当你使用CogOCRMaxTool默认设置的时候,自动分割字符会出现下面的这种情况。
明明是两个字符,由于分隔不够明显,程序认为它们是一个字符。这种情况我们如何处理呢?个人觉得有三种解决方案。
使用形态学调整图像特征
这两个文字分隔不开的原因主要是在A字母的右下角与2的左下角连接到一起。一起看看我的识别套路,嘿嘿,很好用哟。
首先进行膨胀操作,其实应该是腐蚀操作,我们的目的是为了将里面的黑色字体变得瘦一点,但是由于黑色字体周围有一圈白色的亮边,所以我们这里不能使用腐蚀操作,应该使用膨胀。
膨胀后字体是不是变瘦了呢?仅仅如此还是没有办法将A2两个文字分开,因为它们的白色部分连接到了一起。为了分开它们,我们可以使用斑点工具,将里面的黑色斑点文字取出来。
这样的文字不就好办了吗,看看分割效果。
效果还不错,这种方式灵活,使用场合比较多。
使用最大文字宽度分割
在CogOCRMaxTool工具的配置中,有一个最大文字宽度的选项,使用它,你会发现,简直不要太简单。
这种方式也有限制,如果字体不止一种,分割的文字可能不完整。当然,如果是一种字体,文字的最大宽度是有一个范围的。
终极解决方案
对于不成熟的生产工艺,作为工程师,我们要勇敢的说不!既然文字分不开,那就让写开点!给相关部门提要求即可解决!
我们的口号是:解决不了问题,那就解决产生问题的人!
关于CogOCRMaxTool工具识别出来的文字是?的回答
老是有人问我,为什么识别出来的文字是?。这里我统一回答一下。文字识别原理是将分割出来的单个字符做成字库,这个字库里的字符是以字符特征+字符的形式存在的。当我们的识别程序识别的时候,就会搜索相似匹配字符特征,然后将对应的字符输出。如果你的字库不存在,程序就不知道你的字符特征是什么内容。所以,在识别之前,我们需要对所有可能出现的字符进行训练,用以制作字库文件。
原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/241854.html