从扫描图像中删除水平线

时间:2017-10-21 07:47:18

标签: python image-processing imagemagick ocr

在Imagemagick中尝试过很好的形态,但遗憾的是输出也影响了文本,因此对ocr不满意。那么有没有更快的方法从图像中删除行而不影响ocr的文本?

输入图片:

Imagemagick代码:

magick 1sa.jpg -morphology close:1 "1x4: 0,1,1,0" result.png            

输出图像

编辑:感谢所有回复的人。我终于通过以下代码使其工作:

magick E:\1sa.jpg ( +clone -threshold 50% -negate -statistic median 219x1 ) -compose lighten -composite E:\z1.jpg

2 个答案:

答案 0 :(得分:2)

您的ImageMagick命令是错误的,甚至不应该工作。您需要使内核成为不垂直的水平线,并且内核需要更长的线。请尝试以下方法:

magick 1sa.jpg -morphology bottomhat "20x1:0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0" -negate result.png  

enter image description here

根据需要调整内核长度以优化结果。

答案 1 :(得分:0)

这个ImageMagick命令在结果中是否更好?

convert 1sa.jpg -morphology bottomhat "20x3:0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0" -negate result.png  

enter image description here