图像分割
I=imread('C:\Users\洋仔\Desktop\chapter13\图像处理GUI\gray.bmp');
subplot(2,2,1),imshow(I);title('原始dog灰度图像');
Ic=imcomplement(I);
BW=im2bw(Ic,graythresh(Ic));
subplot(2,2,2),imshow(BW);title('阈值截取分割后图像');
se=strel('disk',6);
BWc=imclose(BW,se);
BWco=imopen(BWc,se);
subplot(2,2,3),imshow(BWco);title('对小图像进行删除后图像');
mask=BW&BWco;
subplot(2,2,4),imshow(mask);title('检测结果的图像');
相关函数解释
1.imcomplement函数
强度图像取反
I = imread('cameraman.tif');
J = imcomplement(I);
imshowpair(I,J,'montage')
2.graythresh函数
根据Otsu方法计算图像全局阈值
I = imread('coins.png');
level = graythresh(I)
BW = im2bw(I,level); %转化为二值图像
imshowpair(I,BW,'montage') %显示二值图像
结果:
level = 0.4941
3.im2bw函数(imbinarize)
基于阈值将图像转换为二值图像
BW = im2bw(I,level)
将输入图像I中,像素亮度大于level的像素值设为1 (白色), 其他像素值为0(黑色)。举例如上。
注意:现在更常用imbinarize函数,用法类似。
4.strel函数和imclose函数
形态学中的函数。
* strel函数:表示平面形态学构造元素, 它是形态学扩张和侵蚀操作的重要组成部分。
* imchose函数:形态学闭合。
originalBW = imread('circles.png');
imshow(originalBW);
se = strel('disk',10); %创建磁盘形状的结构元素。
closeBW = imclose(originalBW,se); %执行形态学关闭操作
figure, imshow(closeBW)
se=strel('disk',10)
创建半径为10的平面圆盘形结构.
J = imclose(I,SE)
在灰度或二进制图像I上执行形态学闭合, 返回闭合图像J