我有一个白色背景,前景有各种颜色的多边形。
如何使用 imagemagick 裁剪和迭代图像中的每个多边形?
您可以在 Imagemagick 中通过阈值来做到这一点,然后使用 -connected-components 来定位边界框。然后循环每个边界框并使用给定的边界框进行裁剪。
输入:
bboxArr=(`convert polygons.png -threshold 99% -negate -type bilevel \
-define connected-components:exclude-header=true \
-define connected-components:mean-color=true \
-define connected-components:verbose=true \
-connected-components 8 threshold.png | grep "gray(255)" | awk '{print($2)}'`)
num=${#bboxArr[*]}
for ((i=0; i<num; i++)); do
convert polygons.png -crop "${bboxArr[$i]}" +repage polygon$i.png
done
多边形 1:
多边形 2:
多边形 3: