如何在Matlab中为不连续区域应用边界框

时间:2014-12-07 11:59:14

标签: matlab image-processing image-segmentation

我正在尝试为下面示例中的不连续区域应用边界框。我在regionprops上的Matlab帮助文档中找到了一些内容,但它没有解释如何做到这一点。我需要最小的Box,它可以包含图像中的所有斑点。

1 个答案:

答案 0 :(得分:4)

默认情况下,当引入logical类型输入掩码时,regionprops会自动将bwlabel应用于遮罩,并为输入掩码的每个连接组件计算属性。
在您的情况下,这不是一个理想的行为,因为您希望将所有白色像素视为同一组件的一部分。要克服此默认行为,您只需将输入掩码从logical转换为其他数据类型。

st = regionprops( uint8( BW ), 'BoundingBox' ); %// cast to uint8
rect = st.BoundingBox; %// the bounding box of all white pixels

%// display the results
figure;
imshow( BW, 'border', 'tight' ); 
hold on;
rectangle('Position', rect, 'EdgeColor', 'r', 'LineWidth', 1.5 );

结果与 enter image description here