形态学图像处理
一、C语言简介程序语句分类
1. 循环:
- while(表达式) 语句 \\当while()内的表达式为真时,循环执行{}内的语句,直到while()内的表达式为假.跳出循环.
-
do...while语句\\先执行do{}中的语句然后判断while()中的表达式
-
for语句,for(表达式1;表达式2;表达式3) \\先执行表达式1,然后执行表达式2,如果表达式2的值为真.那么执行{}内的语句,执行完毕后在执行表达式
- 用break语句提前终止循环
- 用continue语句结束本次循环
2.选择判断
- if ...else 语句
- switch
- && 逻辑与 两个值都为真,则结果为真,否则为假
|| 逻辑或 有一个或一个以上为真,则结果为真,二则都为假时,结果为假.
! 逻辑非
- 优先级
二、形态学算法
grid on; %显示网格线
axis on; %显示坐标系
axis([50,250,50,200]);
subplot(1,3,4)%1表示1行,3表示3列,4表示第四个图
1.边界提取
I=imread('1.jpg'); %载入图像
subplot(1,3,1),imshow(I);
title('原始图像');
I1=im2bw(I);
subplot(1,3,2),imshow(I1);
title('二值化图像');
I2=bwperim(I1); %获取区域的周长
subplot(1,3,3),imshow(I2);
title('边界周长的二值图像');
结果显示
膨胀
I=imread('1.jpg'); %载入图像
subplot(1,3,1),imshow(I);
title('原始图像');
I1=rgb2gray(I);
subplot(1,3,2);
imshow(I1);
title('灰度图像')
se=strel('disk',1); %生成圆形结构元素
I2=imdilate(I1,se); %用生成的结构元素对图像进行膨胀
subplot(1,3,3);
imshow(I2);
title(' 膨胀后图像');
结果显示
腐蚀
I=imread('1.jpg'); %载入图像
subplot(2,2,1),imshow(I);
title('原始图像');
I1=rgb2gray(I);
subplot(1,2,1);
imshow(I1);
title('灰度图像')
se=strel('disk',1); %生成圆形结构元素
I2=imerode(I1,se); %用生成的结构元素对图像进行腐蚀
subplot(1,2,2);
imshow(I2);
title('腐蚀后图像');
结果图
开操作和闭操作
I=imread('1.jpg'); %载入图像
subplot(2,2,1),imshow(I);
title('原始图像');
I1=rgb2gray(I);
subplot(2,2,2),imshow(I1);
title('灰度图像');
se=strel('disk',1); %采用半径为1的圆作为结构元素
I2=imopen(I1,se); %开启操作
I3=imclose(I1,se); %闭合操作
subplot(2,2,3),imshow(I2);
title('开启运算后图像');
subplot(2,2,4),imshow(I3);
title('闭合运算后图像');
结果显示
开启闭合组合操作
I=imread('1.jpg'); %载入图像
subplot(2,3,1),imshow(I);
title('原始图像');
I1=rgb2gray(I);
subplot(2,3,2),imshow(I1);
title('灰度图像');
se=strel('disk',1);
I2=imopen(I1,se); %开启操作
I3=imclose(I1,se); %闭合操作
subplot(2,3,3),imshow(I2);
title('开启运算后图像');
subplot(2,3,4),imshow(I3);
title('闭合运算后图像');
se=strel('disk',1);
I4=imopen(I1,se);
I5=imclose(I4,se);
subplot(2,3,5),imshow(I5); %开—闭运算图像
title('开—闭运算图像');
I6=imclose(I1,se);
I7=imopen(I6,se);
subplot(2,3,6),imshow(I7); %闭—开运算图像
title('闭—开运算图像');
2.中值滤波器
I=imread('1.jmp');
I=rgb2gray(I);
J=imnoise(I,'salt&pepper',0.02);
subplot(231),imshow(I);title('原图像');
subplot(232),imshow(J);title('添加椒盐噪声图像');
k1=medfilt2(J); %进行3*3模板中值滤波
k2=medfilt2(J,[5,5]); %进行5*5模板中值滤波
k3=medfilt2(J,[7,7]); %进行7*7模板中值滤波
k4=medfilt2(J,[9,9]); %进行9*9模板中值滤波
subplot(233),imshow(k1);title('3*3模板中值滤波');
subplot(234),imshow(k2);title('5*5模板中值滤波 ');
subplot(235),imshow(k3);title('7*7模 板中值滤波');
subplot(236),imshow(k4);title('9*9 模板中值滤波');
区域填充
连通分量的提取
凸壳
细化粗化 (这几个继续找程序)