我有一个图像文件,该文本包含我想使用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。但是,前面的步骤删除了一些像素。例如,边缘错位中的 e 不完整。
这会导致不良结果,例如“ edve脱位”。我尝试了腐蚀和扩张,但没有明显改善。
有什么方法可以填补字符中的空白吗?
有什么方法可以减少与对角线重叠的字符的粗细?
答案 0 :(得分:0)
由于在图像中,如果您看到,我们可以表示从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来检查它是否真的有效。
-删除重叠后将其应用于图像结果