首页 > 解决方案 > 在图像上查找特定颜色坐标

问题描述

我想在图像上找到某种颜色(例如绿色)的第一次出现的坐标,以便可以在 bash 脚本中使用。

我一直在尝试使用 Imagemagick,但找不到解决问题的方法。

这可以用 Imagemagick 完成还是我应该使用其他任何东西?

标签: bashimagemagick

解决方案


这是 ImageMagick 中使用稀疏颜色的一种方法:(假设图像完全不透明)。Sparse-color 将读出所有完全不透明像素的 x,y 坐标和颜色。然后你可以使用unix工具来获取第一个。

创建红色和蓝色图像:

convert -size 10x10 xc:red xc:blue -append x.png

找到第一个 rgb(0,0,255) 即蓝色像素

convert x.png sparse-color: | tr " " "\n" | grep "srgb(0,0,255)" | head -n 1

结果
0,10,srgb(0,0,255)

使用 txt: 代替 sparse-color 可以获得类似的结果。但是用于过滤的 unix 命令会有所不同。


推荐阅读