形态学图像处理

一、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 模板中值滤波');

区域填充

连通分量的提取

凸壳

细化粗化 (这几个继续找程序)

 

posted on 2015-10-30 23:14  雨落无痕mei  阅读(2207)  评论(1编辑  收藏  举报

导航