Imagemagick 从图像中删除特定大小的行

Imagemagick 从图像中删除特定大小的行,imagemagick,Imagemagick,我对下图使用了以下imagemagick命令: convert img.png -define morphology:compose=darken -morphology Thinning Rectangle:17x1+0+0\< tmp.png convert img.png-定义形态:compose=darken-形态细化矩形:17x1+0+0\

我对下图使用了以下imagemagick命令:

convert img.png -define morphology:compose=darken -morphology Thinning Rectangle:17x1+0+0\< tmp.png
convert img.png-定义形态:compose=darken-形态细化矩形:17x1+0+0\
这将删除图像中的所有线条,但我只想删除每个块左上角数字右侧和底部的小水平线和垂直线。我想保留主列和行行。有人能告诉我怎么做吗?


这就是我得到的结果(注意,将图像内容划分为列和行的长线也消失了。我希望这些长线保持不变):

我注意到脚本比线条更细/更细,更不规则,因此更容易受到技术侵蚀。考虑到这一点,我们可以这样舍弃文本:

convert vcards.png -colorspace gray -threshold 50% -morphology erode disk:1.5 +repage z1.png

这是一个好的开始,但如果我们将其用作遮罩,我们将丢失原始图像中的长水平线。因此,我们可以通过将所有行投影到一个像素宽的高列中,并对所有超过80%白色的行设置阈值来找到所有这些行。然后将图像加宽回其原始宽度

convert z1.png -colorspace gray -resize 1x\! +repage -threshold 80% -scale 810x1518\! +repage z2.png

现在将这两个面具组合起来,这样它们就只在你的小标题框的下方和右侧起作用

convert z1.png \( z2.png -negate \) -compose darken -composite z3.png

最后,将该遮罩加厚一点,因为它可能在之前的处理过程中发生了移动,并将其应用于原始图像

convert vcards.png \( z3.png -morphology dilate disk:2 -negate \) -compose darken -composite result.png


它可以全部合并到一个命令中,但我不会这样做,因为某些方面可能不适用于所有图像,虽然它们都是单独实现和记录的,但它们更易于单独改进或更正。

您可以使用followin代码表示水平线,而对垂直线稍微更改一下

magick 21.gif -monochrome ( +clone -negate -statistic median 219x1 ) -compose lighten -composite q1.png

@MarkSetchell我总是投票给所有回复我帖子的人。再次感谢你教我很多东西。