使用opencv c#检测图像中的文本块

Posted

技术标签:

【中文标题】使用opencv c#检测图像中的文本块【英文标题】:Detecting text blocks in images using opencv c# 【发布时间】:2017-01-02 19:18:53 【问题描述】:

您好,我想从图像中提取文本块并将其传递给 ocr 以获得更好的准确性。我一直在互联网上搜索,但找不到合适的例子。我对这个概念很陌生,有人可以帮助我吗?

这就是我想要实现的。 注意我将 EMGUCV 用于 opencv 和 ocr。 我主要想扫描收据。 如果你能提供帮助,那就太好了。

【问题讨论】:

Split text lines in scanned document的可能重复 也看this 【参考方案1】:

您的文字总是在同一个位置吗?如果是,您将获得感兴趣区域的位置。

//Create the rectangle
cv::Rect roi(0, 0, 500, 500);
//Create the cv::Mat with the ROI you need
cv::Mat imageRoi = image(roi)

然后你可以把这张图片发送到ocr

【讨论】:

嗨不,它不会在确切的位置。我想使用 ocr 扫描收据。 你有什么例子吗? 这可能对你有帮助:link1link2 我已经查看了这些链接。因为我是新人。我无法为 c# 移植该代码。你能帮我解决这个问题吗?【参考方案2】:

您可以将图像阈值化为二进制图像。之后,您可以使用形态学操作“DILATE”(重复)加入字母。当字母加入我们的“findContours()”函数来提取轮廓和它的边界男孩。

【讨论】:

以上是关于使用opencv c#检测图像中的文本块的主要内容,如果未能解决你的问题,请参考以下文章

学习 opencv---(11)OpenC 边缘检测:Canny算子,Sobel算子,Laplace算子,Scharr滤波器

有没有人在 OpenCV 中使用 MSER 来检测区域?

OpenCV与EmguCV中的图像轮廓提取

使用Python,OpenCV应用EAST文本检测器检测自然场景图像中的文本

如何使用opencv从图像中检测文本

检测图像中的一团颜色