java-如何使用光学字符识别来解析数字4
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java-如何使用光学字符识别来解析数字4,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2445字,纯文字阅读大概需要4分钟。
内容图文
![java-如何使用光学字符识别来解析数字4](/upload/InfoBanner/zyjiaocheng/658/c926a649bd3f408c8a88c295cdec18e0.jpg)
我正在研究一种OCR算法,该算法给出的图像包含一些数字.我希望它仅检测每个图像,并将其与其他图像分开.
除数字4之外,它对于所有0-9的数字都有效,这给我带来了很多麻烦.
这是我的原始图片:
这是一些解析它的结果:
如您所见,它们都被完美地解析了.给我带来麻烦的唯一事情是4.这是数字4的样子:
我遇到的问题是检测4的最左角,以便包括整个数字.
这是我的算法尝试检测每个字符的左边界时的遍历方式(蓝色点表示该算法采用的路径):
如果在另一个选项卡中打开图像并放大,则可能会更好地看到其效果.
如您所见,它向下和向左移动,直到两次遇到背景.当这样做时,就意味着已经达到图像的最左边界.对于4以外的所有其他图像,它都能正常工作,您可以看到它两次遇到背景并停止,但是如果它继续向下再向下移动两个像素,则它将遇到4个像素中的更多个,并且会发现其真正的最边缘.
我不确定如何做到这一点,而不会破坏其他数字.如果有帮助,这是我的实际代码:
int misses = 0;
int maxMisses = 2;
while (y < image.getHeight() && x >= 0 )
{
markPixel(x, y);
color = image.getRGB(x, y);
if (! reader.isForeground(color))
misses++;
if (misses < maxMisses)
{
y++;
x--;
continue;
}
x++;
break;
}
if (x < 0)
x = 0;
return x;
编辑:通过仅遍历整个图像而不是停在遇到2个背景像素上,在遇到前景像素时存储x坐标(每一步),然后按升序对匹配进行排序并返回他们的最低结果.它工作得更好.新的4张图片:
它还不完美.另外,9看起来更小:
算法遍历的新路径:
更新的代码:
ArrayList<Integer> matches = new ArrayList<>();
int yB = y;
for (int i = 1; i <= 2; i++)
{
y = yB;
while (y < image.getHeight() && x >= 0 )
{
markPixel(x, y);
color = image.getRGB(x, y);
if ( reader.isForeground(color))
matches.add(x);
y++;
}
x--;
}
Collections.sort(matches);
return matches.get(0);
任何人都对将最后一个缺陷剔除出4个有任何想法吗?
解决方法:
根据我的评论改编而成,这似乎是一种对发布的算法进行最小程度修改的方法:
检查下一个像素时,不要左右移动,而要独立检查它们.如果lefter(?)和较低像素都是未命中,那只会是一个未命中.这将有助于处理45度以上的任何角度,如果更改字体等,可能会遇到这种情况.
然而,
如果您愿意更改算法,那么我认为其他答案最终可能会更可靠.
>从杜兰达(Durandal)的答案来看:绕着数字走一圈,追踪最小x / y和最大x / y.要获得左下角,假设原点在左上角,则为min x,max y.我看到您遇到的唯一问题是岛(i,j)或极斜体字体,因为这些字符可能在x方向上重叠.
>从user2399923的评论开始:查找空列以划分字符也很好.它不会受到孤岛的影响,但是会受到上述极端斜体情况的影响,因为在这种情况下可能没有空列.
>来自blgt的答案:洪水填充方法也不错,我认为是标准.它需要适应岛屿,但不会受到斜体字的影响,除非字符实际接触到.数字中是否有“孔”(例如8)并不重要,因为您只对淹没区域的最小/最大x / y值感兴趣.根据定义,这些点都不是漏洞.
内容总结
以上是互联网集市为您收集整理的java-如何使用光学字符识别来解析数字4全部内容,希望文章能够帮你解决java-如何使用光学字符识别来解析数字4所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。