基于MATLAB的图像分割方法及应用 联系客服

发布时间 : 星期日 文章基于MATLAB的图像分割方法及应用更新完毕开始阅读6df0695b647d27284b7351e9

三江学院2014届本科生毕业设计(论文)

第四章 彩色图像分割的MATLAB实现

4.1 MATLAB语言:阈值分割法实现图像分割 4.1.1 设计流程

确定阈值T读入图像N是否大于TY物体背景

图4.1阈值分割设计流程图

如图4.1所示,为阈值分割设计流程图。阈值分割法具体流程:(1)首先需要设置一个合适的阈值;(2)读入图像;(3)通过判断图像中每一个像素点的特征属性是否满足阈值的要求;(4)若大于阈值则属于目标区域,若小于等于阈值时,则属于背景区域。

4.1.2 MATLAB程序

1、RGB图像分割代码如下:

d=imread('xibao.JPG'); %读入原始图像 imshow(d); %显示原始图像

[r g b]=size(d); %计算图像数据矩阵的行列数

16

三江学院2014届本科生毕业设计(论文)

threshold=65; for i=1:r for j=1:g for k=1:3 R=double(d(i,j,1)); G=double(d(i,j,2));

B=double(d(i,j,3)); %实现等式转换 if d(i,j,2)>65 %判断与阈值的大小关系 d(i,j,2)=255; else d(i,j,2)=0; end end end end figure imshow(d)

程序经过运行输入图片后,得出如图4.3所示:

图4.2 原始图 图4.3 分割后的图像

2、根据第二章中的公式(2-1) RGB到HSI的转换程序代码如下: d=imread('xibao.JPG'); %读入原始图像 [r g b]=size(d); %计算图像数据矩阵的行列数 for i=1:r for j=1:g

R=double(d(i,j,1)); G=double(d(i,j,2));

B=double(d(i,j,3)); %实现等式转换 I=(R+G+B)/3;

S=1-3*min([R,G,B])/(R+G+B);

17

三江学院2014届本科生毕业设计(论文)

H=acos((0.5*[(R-G)+(R-B)])/(sqrt((R-G)^2+(R-B)*(G-B))+eps)); %计算公式 if B<=G H=H*180/pi; else

H=360-H*180/pi; end end end figure imshow(d) threshold=65; for i=1:r for j=1:g for k=1:3 R=double(d(i,j,1)); G=double(d(i,j,2));

B=double(d(i,j,3)); %实现等式转换 if d(i,j,2)>65 %判断与阈值的大小关系 d(i,j,2)=255; else d(i,j,2)=0; end end end end figure imshow(d)

加入分割程序经过运行输入图片后,得出如图4.4所示:

图4.4 HIS模型分割图

3、根据第二章中的公式(2-5) RGB到CMY的转换程序代码如下: d=imread('xibao.JPG'); %读入原始图像

18

三江学院2014届本科生毕业设计(论文)

imshow(d); %显示原始图像

[r g b]=size(d); %计算图像数据矩阵的行列数 for i=1:r for j=1:g

R=double(d(i,j,1)); G=double(d(i,j,2)); B=double(d(i,j,3)); r1=R/255; g1=G/255; b1=B/255; C=1-r1; M=1-g1;

Y=1-b1; %计算公式

if(M<0.67) %当现有的元素小于0.67时,跳出for循环 end end end figure imshow(d) threshold=65; for i=1:r for j=1:g for k=1:3 R=double(d(i,j,1)); G=double(d(i,j,2));

B=double(d(i,j,3)); %实现等式转换 if d(i,j,2)>65 %判断与阈值的大小关系 d(i,j,2)=255; else d(i,j,2)=0; end end end end figure

imshow(d)

加入分割程序经过运行输入图片后,得出如图4.5所示:

19