【发布时间】:2021-05-24 06:10:38
【问题描述】:
我有一个白色的 jpg 文件,上面有一些黑色像素。
我正在寻找一种方法来检查顶行(因此 y = 0)是否包含任何黑色像素。有没有办法用 Imagemagick / convert 来做,或者其次是用任何其他 linux 命令行工具?
我在谷歌上找不到任何类似的主题。
谢谢。
【问题讨论】:
标签: imagemagick imagemagick-convert
我有一个白色的 jpg 文件,上面有一些黑色像素。
我正在寻找一种方法来检查顶行(因此 y = 0)是否包含任何黑色像素。有没有办法用 Imagemagick / convert 来做,或者其次是用任何其他 linux 命令行工具?
我在谷歌上找不到任何类似的主题。
谢谢。
【问题讨论】:
标签: imagemagick imagemagick-convert
您可以裁剪顶线并打印该行中最暗(最小)的像素,如下所示:
magick image.png -crop x1+0+0\! -format "%[min]" info:
如果有纯黑色像素,则打印0。
我假设你的图像是灰度的,如果不是,你可能想要这样:
magick image.png -crop x1+0+0\! -colorspace gray -format "%[min]" info:
请注意,JPG 图像有损,因此即使您在图像中绘制黑色像素(即 0),保存后它也可能显示为 3 或 4。因此,您可能还希望添加一个阈值,以强制低于某个值的所有像素为零(即纯黑色),并将高于该值的所有像素强制为纯白色:
magick image.jpg -crop x1+0+0\! -colorspace gray -threshold 1% -format "%[min]" info:
【讨论】:
-colorspace gray 而不会造成伤害。另外,convert 是旧的 v6 风格,现在你应该使用magick -size ...。请注意,如果您确实必须继续使用 v6,则需要将我的命令中的 magick 替换为 convert。
convert image.jpg -gravity south -crop x1+0+0\! ...