You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python与MATLAB中regionprops返回BoundingBox差异及对齐方案咨询

BoundingBox格式差异说明
  • MATLAB regionprops 返回的BoundingBox格式为 [x_min, y_min, width, height]:
    • 坐标以1为起始原点,定位在像素的中心位置,所以边界起始值带0.5的偏移量
    • x对应图像水平方向(列坐标),y对应图像垂直方向(行坐标)
    • 后两位是 bounding box 的宽度(水平方向像素数)、高度(垂直方向像素数)
  • Python scikit-image regionprops 返回的bbox格式为 [y_min, x_min, y_max, x_max]:
    • 坐标以0为起始原点,定位在像素的左上角,无小数偏移
    • 结果为左闭右开区间,后两位是边界的最大索引值(不是宽高)
    • 维度顺序和MATLAB相反,垂直方向(行坐标)在前,水平方向(列坐标)在后
数值匹配验证

你给出的输出完全符合上述规则:
以第一组结果为例,MATLAB输出[194.5000, 156.5000, 378.0000, 154.0000]:

  • y_min = floor(156.5) = 156
  • x_min = floor(194.5) = 194
  • y_max = 156.5 + 154 = 310
  • x_max = 194.5 + 378 = 572
    和Python输出的第一组[156, 194, 310, 572]完全一致,第二组结果同理可验证匹配。
MATLAB代码修改方案

在原有代码基础上增加格式转换即可,向量化写法如下:

props = regionprops(bw,'BoundingBox');
v = cat(1, props.BoundingBox);
% 转换为Python scikit-image格式的bbox
v_python = [floor(v(:,2)), floor(v(:,1)), floor(v(:,2)+v(:,4)), floor(v(:,1)+v(:,3))];

运行后v_python就和Python输出结果完全一致。
注意:如果连通域顺序不匹配,需要先确认两个平台的label函数排序规则是否对齐,你的示例中顺序一致无需额外调整。

内容的提问来源于stack exchange,提问作者Zyder

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.08 14:24:01