MATLAB分提取连通区域的边界
时间: 2024-01-29 09:25:18 浏览: 47
在MATLAB中,可以使用`bwboundaries`函数提取二值图像中的连通区域边界,并返回每个连通区域的边界点坐标。
具体来说,`bwboundaries`函数的语法如下:
```
B = bwboundaries(BW);
```
其中,`BW`是一个二值图像,表示要提取边界的连通区域;`B`是一个长度为`num`的单元格数组,其中`num`是`BW`中连通区域的数量,每个单元格表示一个连通区域的边界点坐标,是一个`N-by-2`的矩阵,其中`N`是边界点的数量。
例如,下面的代码演示了如何提取二值图像中的连通区域边界,并绘制边界:
```matlab
% 读取二值图像
bw = imread('binary_image.png');
% 寻找连通区域
[L, num] = bwlabel(bw);
% 提取连通区域边界
B = bwboundaries(bw);
% 绘制连通区域边界
figure, imshow(bw), hold on
for k = 1:num
boundary = B{k};
plot(boundary(:,2), boundary(:,1), 'r', 'LineWidth', 2)
end
```
运行上述代码,就可以绘制出每个连通区域的边界,如下图所示:
![提取连通区域边界](https://img-blog.csdn.net/20180723152658544?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3RlY2hzb25saW5l/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/q/70)