我有一个带文本的图像文件,我想用OCR提取。 但是它上面有一条对角线重叠的文本线(右上角),就像。 我用
image = cv2.imread(image_path)
image = cv2.resize(image, None, fx=2, fy=2, interpolation=cv2.INTER_CUBIC)
image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
image = cv2.GaussianBlur(image, (5, 5), 0)
image = cv2.threshold(image, 100, 255, cv2.THRESH_BINARY)[1] # 100 here as the diagonal line is grey
请注意剪切应力的粗体字符,它是对角线重叠的区域之一。 现在我应用OCR。但是,前面的步骤会删除一些像素。例如,ein边缘位错是不完整的。在
这会导致像“edve位错”这样的不良结果。我试过腐蚀和扩张,但没有明显改善。在
有什么方法可以填补字符的空白吗?在
有没有办法减少和对角线重叠的字符的粗细?在
因为在图像中,我们可以表示从2^0=0到亮区域(白色)的深色区域(黑色)2^8=256。 所以有一件事你可以试试(我也不确定):
img = cv2.imread(image_path,0) new_img = img.copy() new_img[new_img<=230] = 0 ## just try to change that 230 value to anywhere b/w 150 to 230
然后尝试使用OCR检查它是否真的有效。在在去除重叠后,将此应用于图像结果
相关问题 更多 >
编程相关推荐