-1

我是 OpenCV 的初学者,正在尝试从图像数据集中提取数字并将提取的数字用作 NN 的数据集。为此,我使用 mser 的边界框,然后按照边界框的大小裁剪图像。但 mser 没有正确检测到文本区域。请帮助我如何更准确地做到这一点。这是我的代码:

mser = cv2.MSER_create(_delta = 1)

msers, bbs = mser.detectRegions(gray)

这里 bbs 是边界框的列表,它们不在文本区域,甚至没有。

在此处输入图像描述

基本事实的图像,边界框应该在哪里:

在此处输入图像描述

mser的边界框:

在此处输入图像描述

mser 的边界框的另一个例子:

在此处输入图像描述

4

1 回答 1

0

如果您想检测图像上的文本,我使用 Tesseract 来完成此操作。您只需将 tessdata 文件链接到您正在使用的语言,它应该检测图像中的文本并将其作为字符串输出。但是,如果您想在检测图像上的文本之前进一步裁剪原始图像,则可以使用斑点检测。斑点检测是图像通过各种不同的图像阈值,并寻找一致性,如果找到一致性,则在该区域创建一个斑点。在这种情况下,您可以使用 blob 检测,然后从这些 blob 中创建边界矩形。

于 2020-03-18T05:45:33.950 回答