首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用OpenCV从图像中逐个分离日文字符的算法

使用OpenCV从图像中逐个分离日文字符的算法
EN

Stack Overflow用户
提问于 2013-09-11 08:53:58
回答 2查看 529关注 0票数 2

我有一个应用程序,需要从图像中一个接一个地分离日语字符。

输入:具有一行日语文本的图像。它可以有半角片假名、半角数、全角片假名、平假名和数字。也可以是半角或全角英文字符。(让我们暂时忘记英文字符)

问题:通过使用自适应阈值、膨胀和腐蚀,我可以很容易地分离出字符。但有一个大问题。

一些日语字符之间有一个空格。比如川,体,休,非。因此,简单地查看垂直白色间隙是没有帮助的。查找宽度也没有帮助,因为可以有全角字符(2btyte)或半角字符(1byte)。我似乎需要一种巧妙的方式来做到这一点。

你知道我该怎么做吗?任何想法都是好主意:)

这里有几张样例图片。(红色圈出的字符是有问题的)

http://imageshack.us/a/img833/3810/e31z.png

http://imageshack.us/a/img12/2395/7mqn.png

EN

回答 2

Stack Overflow用户

发布于 2013-09-11 09:10:16

不要期望找到一个简单的算法就能做你想做的事情,准备结合一些技术,包括但不限于你已经提到的那些。

根据之前的个人经验,我个人的建议是让你看看template matching techniques

基本上,这就是你需要做的:

  1. 选择要识别的每个符号的几个示例图像,以形成模板数据库。
  2. 开发了一种算法,将图像中的每个字符分割出来。我想你已经完成了。
  3. 这里很重要的一点是,您要缩放字符并对其透视图进行规范化,以便它们与生成模板的确切条件相匹配。例如,getperspectivetransformwarpPerspective可能会使用cv::matchTemplate对每个模板中的每个字符进行测试。排在最前面的匹配项使用类似于您自己提到的启发式方法进行一些精细选择,即检查预期位置上是否存在间隙等。
  4. 测试和重新测试,针对最接近的情况改进启发式方法,直到达到所需的准确性。

如果你发现自己在处理光照条件、字符颜色、字体、大小等方面的变化太多,你会意识到你将需要一个巨大的数据库来涵盖所有不同的可能性。在这种情况下,对变化的条件使用一些变换不变量可能会有所帮助。对于字符识别,我相信骨架化可以很好地工作。看一下topological skeletonmorphological skeleton,还有here作为一个简单的例子。

票数 1
EN

Stack Overflow用户

发布于 2013-09-11 15:44:16

希望OCR是你需要做的。正如link所说的,opencv不支持光学字符识别。但是有另一个开源的tesseract可以做到这一点。只需检查这是否有帮助。

我在谷歌上找到了更多的链接。

Opencv OCR

OCR exaple in Opencv

希望这能有所帮助!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18731042

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档