MATLAB进行 形态学处理的几个函数
腐蚀 和 膨胀
clear all; clc;
im = imread(‘G:\Matlab\toolbox\images\imdata\cameraman.tif’);
im_inv=255-im;
se = strel(‘line’,11,90); % 结构元素
im1=imerode(im,se);
im2=imdilate(im,se);
dilatedI=imdilate(im_inv,se);
dilatedII=255-dilatedI; % 先取反,后膨胀
figure;
subplot(221); imshow(im1); title(‘erode’);
subplot(222); imshow(im2); title(‘dilate’);
subplot(223); imshow(dilatedII); title('先取反,后膨胀 ');
subplot(224); imshow(im); title(‘原图’);
开操作 和 闭操作
I = imread(‘G:\Matlab\toolbox\images\imdata\circles.png’);
se=strel(‘rectangle’,[40 30]); % 生成矩形结构
I1 = imopen(I,se); % 开运算,填补空洞
I2 = imclose(I,se); % 闭运算,连接图像
figure;
subplot(131); imshow(I1); title(‘open’);
subplot(132); imshow(I2); title(‘close’);
subplot(133); imshow(I); title(‘原图’);
形态学重构----填补空洞 & 消除边界对象
M = imread(‘G:\Matlab\toolbox\images\imdata\tire.tif’);
N = im2bw(imread(‘G:\Matlab\toolbox\images\imdata\rice.png’));
M1 = imfill(M,‘holes’);
N1 = imclearborder(N);
figure;
subplot(221); imshow(M); title(‘填充后图像’);
subplot(222); imshow(M1); title(‘原图’);
subplot(223); imshow(N); title('消除边界后图像 ');
subplot(224); imshow(N1); title(‘原图’);