我正在尝试使用 ImageMagick(7.1.1-43) 自动裁剪硬币照片,去除周围的背景。我想根据“模糊”因素修剪图像,从而有效地去除大部分均匀的颜色。但是,我当前的命令只修剪图像的左侧,而右侧保持不变。
我的目标:
我想均匀地修剪图像的左右两侧,在保留硬币的同时尽可能地去除墙壁。
使用的命令:
./magick 20240614_093525.JPG -fuzz 51% -trim +repage img1.jpg
原始图像:
返回的图像:
我尝试过的:
我尝试过调整-fuzz
百分比,但似乎对左侧修剪没有影响。将其降低太多会阻止任何修剪,而将其提高会产生此错误:
magick:几何不包含图像“20240614_093525.JPG”@warning/attribute.c/GetImageBoundingBox/554。
我可以使用什么命令来确保两侧都被修剪?
由于右上角的晕影太暗,该图像不适合模糊匹配。硬币阴影强度的不平衡也无济于事。将模糊度设置得太高会导致无结果,因为硬币的颜色与背景相差不大。
您还可以尝试使用影响内部背景相似度百分比(而不是整体颜色相似度)的
-define trim:percent-background
参数。例如:trim
从我的快速测试来看,
50%
模糊性和默认性是最好的准确度100%
:但是,如果您先处理晕影,结果会更好。例如,只需使用
-shave 50x50
裁剪掉角落,然后处理生成的图像,就可以获得更好的结果,并且全局模糊度更低,例如:为了使其更加自动化,比如说处理更加密集的晕影或前景的变化对象,在批处理中,要么需要使用更先进的算法,甚至人工智能。
您的问题是背景有渐变(阴影?)。因此,仅模糊就需要较高的值。如果您先使用 -shave 裁剪图像,会有所帮助。然后模糊可能不需要这么高的值。
另一方面,您可以使用 -trim 定义之一来帮助 Imagemagick 7 中的 -trim,强制修剪直到达到某个 (-background) 颜色。请参阅https://imagemagick.org/script/command-line-options.php#trim或https://imagemagick.org/script/defines.php