Matlab二值化后边界填充
时间: 2024-05-13 16:14:16 浏览: 89
在Matlab中,可以使用以下步骤进行二值化后边界填充:
1. 读入二值化后的图像。
2. 使用imfill函数填充图像内部的空洞。
3. 通过bwareaopen函数移除小的区域。
4. 使用bwperim函数得到图像的边界。
5. 使用imdilate函数对边界进行膨胀操作。
6. 将膨胀后的边界与原始图像相加,得到填充后的图像。
以下是具体的代码实现:
```matlab
% 读入二值化后的图像
im = imread('binary_image.png');
% 填充图像内部的空洞
im = imfill(im, 'holes');
% 移除小的区域
im = bwareaopen(im, 50);
% 得到图像的边界
boundary = bwperim(im);
% 对边界进行膨胀操作
se = strel('disk', 1);
boundary = imdilate(boundary, se);
% 填充后的图像
filled_im = im + boundary;
% 显示填充前后的图像
subplot(1,2,1), imshow(im), title('Original image');
subplot(1,2,2), imshow(filled_im), title('Filled image');
```
上述代码中,假设原始二值化图像为`binary_image.png`,通过`imread`函数读入。`imfill`函数可以填充图像内部的空洞。`bwareaopen`函数用于移除小的区域。`bwperim`函数可以得到图像的边界。`imdilate`函数可以对边界进行膨胀操作。最终将膨胀后的边界与原始图像相加,得到填充后的图像。
阅读全文