我正在尝试创建一个可以从图像中读取文本的应用。但我在清除背景方面遇到了问题。我想要的结果如下:
输入图片1:
输出图像1:
这是我尝试过的代码:
cvtColor(org, tmp, CV_BGR2GRAY);
normalize(tmp, tmp, 0, 255, NORM_MINMAX);
threshold(tmp, dst, 0, 255, CV_THRESH_OTSU);
答案 0 :(得分:0)
您感兴趣的线条朝向0度或90度,两个方向的差异很小。背景图案中的线条是倾斜的。您可以使用canny算法识别线条,然后检查方向。根据字体的不同,您会在垂直和水平线相交处留下一些间隙。然后返回原始图像并使用基于颜色的分水岭,或使用连接的组件,或其他任何东西,以避免丢失那些连接区域。