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