单独显示每个连通区域的面积行列 MATLAB
时间: 2024-03-16 12:42:54 浏览: 92
二值图像连通区域的标记,二值图像分支点连接数,matlab
5星 · 资源好评率100%
以下是一个示例代码,用于单独显示每个连通区域的面积、行数和列数:
```matlab
% 读取二值图像
bw = imread('binary_image.png');
% 寻找连通区域
[L, num] = bwlabel(bw);
% 计算每个连通区域的面积、行数和列数
stats = regionprops(L, 'Area', 'BoundingBox');
% 单独显示每个连通区域
for i = 1:num
% 获取当前连通区域的像素索引
idx = find(L == i);
% 计算当前连通区域的行列数
[rows, cols] = ind2sub(size(L), idx);
% 在命令窗口显示当前连通区域的面积、行数和列数
disp(['第', num2str(i), '个连通区域:']);
disp([' 面积:', num2str(stats(i).Area)]);
disp([' 行数:', num2str(stats(i).BoundingBox(2)), '-', num2str(stats(i).BoundingBox(2) + stats(i).BoundingBox(4))]);
disp([' 列数:', num2str(stats(i).BoundingBox(1)), '-', num2str(stats(i).BoundingBox(1) + stats(i).BoundingBox(3))]);
% 创建一个新的图像窗口
figure;
% 在新窗口中显示当前连通区域
imshow(bw);
hold on;
% 将当前连通区域的像素标记为红色
plot(cols, rows, 'r.');
% 设置图像标题
title(['连通区域', num2str(i)]);
end
```
上述代码会输出每个连通区域的面积、行数和列数,并在单独的图像窗口中显示每个连通区域。注意,`stats(i).BoundingBox`返回的是当前连通区域的包围盒,包含左上角点的行列数和宽高。
阅读全文