如何使用ImageMagick查找位图中最大的近似白色矩形?
我想自动清除扫描页面中的可见边框/阴影 我的想法很简单:在图像中检测一个最大的矩形,其中所有像素都是白色或接近白色,然后将图像裁剪为该矩形,或者用白色填充外部 我可以编写自己的程序来查找这样一个矩形,但我更喜欢使用(它也可以进行裁剪或填充)或其他可用于Linux和Cygwin的实用程序 他们能做到吗?怎么做 附言:我刚找到一份工作。如何使用ImageMagick查找位图中最大的近似白色矩形?,imagemagick,imagemagick-convert,Imagemagick,Imagemagick Convert,我想自动清除扫描页面中的可见边框/阴影 我的想法很简单:在图像中检测一个最大的矩形,其中所有像素都是白色或接近白色,然后将图像裁剪为该矩形,或者用白色填充外部 我可以编写自己的程序来查找这样一个矩形,但我更喜欢使用(它也可以进行裁剪或填充)或其他可用于Linux和Cygwin的实用程序 他们能做到吗?怎么做 附言:我刚找到一份工作。 如果答案对我有效,这将是一个副本。convert有一些过滤器,您可以在执行autocrop之前应用这些过滤器。我举了一个例子: 因此,请使用以下方法: conve
如果答案对我有效,这将是一个副本。convert有一些过滤器,您可以在执行autocrop之前应用这些过滤器。我举了一个例子: 因此,请使用以下方法:
convert <in-image> -level 20%,80%,1.0 <out-image>
把它放在一个脚本中,你就可以像前面提到的那样在图像周围自动裁剪出非纯色的图像
嗯。。。实际上,如果我们与图像进行比较,compare命令肯定会工作得更好
转换-级别20%,80%
pnmcrop
比较
转换-裁剪。。。
不太确定确切的pnmcrop
和compare
命令行选项,但可以这样想:由convert
(第1行)编写一次,然后用于生成,然后我们在其中搜索以获得位置和大小(几何体),最终用于裁剪命令(最后一次convert
)我使用ImageMagick和
您的里程数可能会随着不同设置的调整而变化(事实上,我的算法在整个过程中多次以不同的设置和不同的分辨率运行,直到其中一个被认为“足够好”),但我的一般策略是:
deskew
检测到的EPS旋转角度修剪
存储EPS的裁剪尺寸形态学
去除劣质扫描中的斑点我使用的所有参数对于我的用例来说都是相当任意/特定的,但这是一般的方法。祝你好运 Gimp中有一个自动裁剪。我不知道是否可以在脚本中使用它,但它通常工作得很好。关于它的有趣文章可能会有所帮助。你能在你所期望的图像之前和之后发布一个例子吗?@emcconville:See,这是一个相同的问题,但提出了一个不同的问题。@Alexis Wilke:这似乎只裁剪完全空白的材质,比如-但我还需要裁剪阴影和边框。
convert <in-image> -crop <width>x<height>+<xpos>+<ypos> <final-image>
convert <original> -level 20%,80% <temp>
pnmcrop <temp>
compare <original> <temp>
convert <original> -crop ... <final>
convert <original> -level 20%,80% <tempA>
pnmcrop <tempA> <tempB>
compare <tempA> <tempB>
convert <original> -crop ... <final>