2009-11-04 82 views
4

我需要找出用户单击的图像中的单词。到目前为止,我已经成功地对图像进行了检查。我在我的c#应用程序中有一个picturebox控件。用户可以围绕任何文本绘制一个框,并将其拖到文本框中以填充文本框。我完成了这个。但现在我有一个新的要求,说用户可以选择一个文本框,然后单击图像中的一个单词,以便该单词填充在文本框中。如何检测图像中的单词

我不知道如何继续。我如何从图像中单独剪切单词部分并将其提供给OCR。用户可以点击单词的任何部分。

请给我任何指针。我应该遵循什么算法来查找用户点击的单词的边界。如果我发现边界,我可以使用copyfromscreen方法从图像中剪切它,并将其交给ocr引擎以获取文本。

希望我在这里明确了我的问题。

感谢和问候, Dinesh。

+0

**连接组件标签**。使其更快,我用它sobelEdgeDetection过滤器>反转颜色进行预处理。但是这会给处理更少的像素,但会丢失一些字母的连通性。 – 2017-12-11 09:28:02

回答

1

如果您已经获得了OCR数据(取决于OCR库),则可以执行反向查找并确定指定像素坐标处的字符。我所使用的OCR库为每个字符提供了矩形坐标,而这些坐标又可以分组为单词(组合这些矩形)。问题就是简单地确定点击发生在哪个矩形的内部。

+0

嗨, 我正在使用Microsoft Office Document Imaging 12.0库。使用这个库可以获得图像中角色的矩形坐标吗?如果不是我可以使用的其他库。你能告诉我你曾经使用过哪些图书馆吗?如果我得到所有的矩形坐标,我当然可以得到这个词。非常感谢。 – Dinesh 2009-11-05 04:50:54

+0

CONNECTED COMPONENETLABELİNGALGORİTM?? – 2017-12-11 09:20:53

2

如果你有OCR的工作,我最初的做法是试图以初始点击点为中心进行某种搜索。

即,围绕用户点击的地方制作一个小盒子,OCR,如果所有的噪音,做一个更大的盒子,OCR,重复,直到OCR结果。

+0

嗨, 我试过这个,但问题是即使是一个小图像的ocr是非常缓慢的。所以这需要很多时间,如果用户在单词的中间点击,我已经有点正确了。我一直在增加框的宽度,直到我得到的单词数是2.但这不是最佳解决方案吗? – Dinesh 2009-11-05 04:52:34