字符识别(OCR算法)[闭](Character recognition (OCR algorith

2019-08-17 06:39发布

我的工作中,我要开发的OCR算法的一个项目(我要读从图像文本,然后将其转换为不同的语言)。所以,我的首要任务是让从图像文本。

步骤来完成的第一个任务。

  1. 从加载给定的源的任何图像格式(BMP,JPG,PNG)。 然后将图像转换为灰度,并使用阈值(Otsu算法)二进制化它。 //完成(如何删除从输出的图像噪声???)

结果

  1. 检测图像功能,如分辨率和翻转。 这样我们终于可以将其转换为用于进一步处理的图像拉直。 (已完成图像的旋转代码,但无法检测这是我们必须要旋转图片图片角度,对角检测部分静得工作)

  2. 线检测和删除。 这一步是需要改进的页面布局分析,以达到更好的识别质量下划线的文本,以检测表等(决定完成在结束的那部分)

  3. 页面布局分析。 在这一步中,我试图找出存在于图像中的文本区域。 因此,只有用于识别和该地区的其余那部分被排除在外。

  4. 文本行和单词检测。 在这里我们也需要采取不同的字体大小和字之间的小空间的照顾。

  5. 字符识别。 这是OCR的主算法; 每个字符的图像必须被转换成相应的字符码。 有时,这种算法产生了不确定的图像几个字符代码。 例如,识别的图像的“我”字能产生“I”,“|” “1”,“L”的代码,最终字符代码将在后面选择。

  6. 保存结果到选择的输出格式,例如,可搜索的PDF,DOC,RTF,TXT。 列,字体,颜色,图片,背景等:它保存原来的页面布局是非常重要的。

所以,我需要帮助part6.I已完成线检测部(得到n个含有n行的一段图像),但卡在接下来的部分越来越recognisation.If你的话和性格了解有关OCR和字符确定方法①部分良好的联系,然后请留言这里。

对于字符确定方法①我想用asprise(Java库) http://asprise.com/product/ocr/index.php?lang=java

Answer 1:

为了检测旋转角度 ,使用霍夫变换 。

为了降低噪音 ,更换任何像素,即没有一个邻居(北,东,南或西)用相同的颜色(类似的颜色,使用容忍阈值),平均邻居。

搜索布局检测垂直的白色空白。 沿垂直间隙分得一杯羹。 对于每一个切片,现在搜索水平的差距,和切片。 如果片具有相同(相似)的高度,你在线路电平。 否则,重复垂直/水平分割,直到只剩线。 然后最后一步是再次垂直分割,让您(在某些情况下,或结扎线)的单个字符。 长而窄或短而宽的切片线。

用字符库比较字符片。 如果性能不是主要问题,尝试不同的字体库中查找的字符,直到可以识别所使用的字体。 然后使用该字体字符识别棒。

在原始图像,替换用背景色,这是由内插,并非是用于该字符的每个像素中的字符的部分的像素来确定每个字符。 这给你的背景图片 ,如果有的话。



Answer 2:

你应该使用Adaptive treshold代替大津的方法。我认为这将是有益的http://www.csse.uwa.edu.au/~shafait/papers/Shafait-efficient-binarization-SPIE08.pdf此方法将自动删除噪声。



Answer 3:

你可能想在看向正方体的字符识别部分。



Answer 4:

您可以使用potrace降低IT vectorises给定的图像(BMP)的噪音,并将其转换为SVG,PDF和其他一些格式

http://potrace.sourceforge.net/potrace.html



文章来源: Character recognition (OCR algorithm) [closed]
标签: ocr