2016-12-28 114 views
0

我想从图像中提取手写文字。我使用python opencv函数,例如find_contours。这一切都是做得较好,当我使用的图像像这样的:笔记本文字提取

enter image description here

它正常工作,因为我有一个简单的背景。但后来我与此图像进行了测试:

enter image description here

因为在后台笔记本电脑的线,我不能够只提取文本。虽然文字是红色的,但我会将所有图像转换为灰度或有时是阈值,以便像笔记本一样变黑。这样,文本的颜色并不重要。所以我的问题在于:任何人都可以给我建议或可能的解决方案,以便如何处理这种背景以提取文本。我真的不想使用滑动窗口方法。 预先感谢您

回答

0

我决定再次尝试使用OpenCV中的HoughLinesP功能,这次给了我一个更有希望和更令人满意的结果。下面是我用于去除线的大部分代码片段:

import cv2 
import numpy 

img = cv2.imread('thresh.png') 
edges = cv2.Canny(img, 50, 150, apertureSize=3) 
minLineLength = 0 
maxLineGap = 5 
lines = cv2.HoughLinesP(edges, 1, numpy.pi/180, 100, minLineLength, maxLineGap) 

for x in range(len(lines)): 
    for x1, y1, x2, y2 in lines[x]: 
     cv2.line(img, (x1, y1), (x2, y2), (0, 0, 0), 2) 

cv2.imwrite('houghlines3.jpg', img) 

附加信息:thresh.png是其中我存储初始PIC的阈值版本的图像。整个事情的作用方式是找到图像中的线条并将它们涂成黑色(因为在我的门槛中,接近白色的是黑色,反之亦然)。这就是它清除线条的方式。 PS:希望我帮助过某人!干杯!