如何使用ImageMagick返回图像中各连续对象的边界框坐标?
使用ImageMagick获取图像中连续对象的边界框坐标
ImageMagick的connected-components工具可以直接识别图像中的连续色块(对象),并输出它们的边界框信息,以下是具体操作步骤:
核心命令
在命令行中执行以下命令,即可获取图像中所有连续对象的详细信息(包括边界框):
magick 输入图片路径 -define connected-components:verbose=true -connected-components 8 null:
参数说明
-connected-components 8:指定用8连通规则识别对象(即上下左右+四个对角线相连的像素算同一个对象),如果只需要上下左右连通,可改为4-define connected-components:verbose=true:开启详细输出模式,会返回每个对象的ID、面积、边界框(bbox)等信息null::用于抑制生成输出图像,只返回文本结果
提取纯边界框坐标
如果只需要边界框数据(格式为x,y,宽度,高度),可以用文本过滤工具(如grep+awk)提取:
magick 输入图片路径 -define connected-components:verbose=true -connected-components 8 null: | grep -E "^[0-9]+:" | awk '{print $4}'
以你提供的示例图(白色背景上分布多个独立深色矩形)为例,执行命令后会输出每个矩形的边界框,类似:
12,15,68,65 102,22,70,62 195,18,66,67 ...
内容的提问来源于stack exchange,提问作者ina
相关产品推荐
相关产品推荐

