Image processing 如何按颜色区域将图像文件分离为多个图像文件?
以透明背景(png)上的圆形和方形图像为例 我想按区域分割此图像。区域由连接的颜色定义。我有一个圆形区域。和一个正方形区域 输出将是一个带有圆圈的图像文件 还有第二个图像文件,上面有正方形Image processing 如何按颜色区域将图像文件分离为多个图像文件?,image-processing,imagemagick,Image Processing,Imagemagick,以透明背景(png)上的圆形和方形图像为例 我想按区域分割此图像。区域由连接的颜色定义。我有一个圆形区域。和一个正方形区域 输出将是一个带有圆圈的图像文件 还有第二个图像文件,上面有正方形 ImageMagick可以这样做吗?其他工具可以做到这一点吗?我如何才能做到这一点?以下是如何在ImageMagick中做到这一点。我注意到你发布的图片背景是白色的,不是透明的。但是,我已将白色改为透明。我首先使用连接的组件获取对象的边界框。然后,我在每个边界框上循环,将其裁剪出来,并使用裁剪图像中存储
ImageMagick可以这样做吗?其他工具可以做到这一点吗?我如何才能做到这一点?以下是如何在ImageMagick中做到这一点。我注意到你发布的图片背景是白色的,不是透明的。但是,我已将白色改为透明。我首先使用连接的组件获取对象的边界框。然后,我在每个边界框上循环,将其裁剪出来,并使用裁剪图像中存储的虚拟画布信息将其放回透明图像中 输入:
以下是如何在ImageMagick中执行此操作。我注意到你发布的图片背景是白色的,不是透明的。但是,我已将白色改为透明。我首先使用连接的组件获取对象的边界框。然后,我在每个边界框上循环,将其裁剪出来,并使用裁剪图像中存储的虚拟画布信息将其放回透明图像中 输入:
请参阅连接组件处理或泛光填充您不想要的区域,使其合并到背景中。请参阅连接组件处理或泛光填充您不想要的区域,使其合并到背景中。
bboxArr=(`convert circle_rectangle_transp.png -type bilevel \
-define connected-components:verbose=true \
-define connected-components:exclude-header=true \
-define connected-components:mean-color=true \
-connected-components 8 null: | grep "gray(0)" | awk '{print $2}'`)
echo "${bboxArr[*]}"
i=0
for bbox in ${bboxArr[*]}; do
echo $bbox
convert circle_rectangle_transp.png -crop "$bbox" -background none -flatten circle_rectangle_transp_$i.png
i=$((i+1))
done