《基于形态学运算的星空图像分割课程设计报告(附源代码).doc》由会员分享,可在线阅读,更多相关《基于形态学运算的星空图像分割课程设计报告(附源代码).doc(9页珍藏版)》请在三一办公上搜索。
1、Matlab程序设计任务书分院(系)专业学生姓名学号设计题目基于形态学运算的星空图像分割内容及要求: 在获取星图像的过程中,由于某些因素的影响,获得的星图像存在噪声,而且星图像的背景经常是不均匀的,为星图像的分割造成了极大的困难。膨胀和腐蚀是形态学的两个基本运算。用形态学运算对星图像进行处理,补偿不均匀的星图像背景,然后进行星图像的阈值分割。 1 图像预处理:对原始星空图像进行滤波去噪处理; 2 对去噪后的图像进行形态学运算处理; 3 选取自适应阈值对形态学运算处理后的图像进行二值化; 4 显示每步处理后的图像; 5 对经过形态学处理后再阈值的图像和未作形态学处理后再阈值的图像进 行对比分析。
2、进度安排:3周 指导教师(签字):年 月 日学院院长(签字):年 月 日目 录一课程设计目的3二设计原理3三详细设计步骤3四. 设计结果及分析18五. 总结19 六. 设计体会20 七. 参考文献21一、课程设计目的本次课程设计的目的在于正确用形态学运算对星图像进行处理,并补偿不均匀的星图像背景,然后进行星图像的阈值分割。通过设计实现对星图像进行形态学处理,能够提高学生分析问题和解决问题的能力,还能培养一定的科研能力。 二、设计原理:图像分割就是把图像分成若干个特定的、具有独特性质的区域并提出感兴趣目标的技术和过程。它是由图像处理到图像分析的关键步骤。现有的图像分割方法主要分以下几类:基于阈值
3、的分割方法、基于区域的分割方法、基于边缘的分割方法以及基于特定理论的分割方法等。形态学是一个广泛的图像处理操作过程,它处理图像是基于形状的。形态学操作在输入图像中使用一个结构化的参数,建立一个同样大小的输出函数。在形态学操作中,输出图像中的每个像素的值是基于输入图像中相应像素及其邻域像素间的对比。通过选择邻域的大小和形状,可以构造一个在输入图像中对特殊形状敏感的形态学操作。 最基本的形态学操作是膨胀和腐蚀。膨胀在一个图像中增加目标边缘的像素,腐蚀从目标边缘移除像素。在图像中增加或者移除像素是基于用于处理图像的结构化参数的大小和形状。在形态学膨胀和腐蚀操作中,输出图像中任何给定像素的属性通过在输
4、入图像相应像素及其邻域像素使用一个准则决定。处理像素的准则定义操作为膨胀或腐蚀。本次课程设计首先对原始星空图像进行滤波去噪处理,然后对去噪后的图像进行形态学运算处理,最后,选取自适应阈值对形态学运算处理后的图像进行二值化,并得出结论。 三、详细设计步骤:1、图像预处理:对原始星空图像进行滤波去噪处理clc;clear;I=imread(I:数字图象处理图片1.jpg);subplot(3,3,1);imshow(I);title(原图);I1=imnoise(I,salt & pepper,0.1);%对I1加入值为0.1的椒盐噪声h,w=size(I1);n=9; f=double(I1);
5、%转换为双精度a=ones(n,n);y=f; for i=1:h-n+1 for j=1:w-n+1 a=f(i:i+(n-1),j:j+(n-1); s=sum(sum(a);%计算均值 y(i+(n-1)/2,j+(n-1)/2)=s/(n*n);%通过均值滤波进行去噪 end end2、 对去噪后的图像进行形态学运算处理subplot(3,3,4),imshow(I1),title(滤波去噪);SE=strel(arbitrary,eye(5); %创建一个任意形状的结构元素对象I2=imclose(I,SE); %闭合操作subplot(3,3,6);imshow(I2);title
6、(形态学图像处理);3、 选取自适应阈值对形态学运算处理后的图像进行二值化%形态学后自适应阈值二值化%rgb转灰度if isrgb(I2)=1 I2_gray=rgb2gray(I2);else I2_gray=I2;endI2_double=double(I2_gray);%转化为双精度wid,len=size(I2_gray);colorlevel=256; %灰度级hist=zeros(colorlevel,1);%直方图%threshold=128; %初始阈值%计算直方图for i=1:wid for j=1:len m=I2_gray(i,j)+1; hist(m)=hist(m)
7、+1; endendhist=hist/(wid*len);%直方图归一化miuT=0;for m=1:colorlevel miuT=miuT+(m-1)*hist(m);endxigmaB2=0;for mindex=1:colorlevel threshold=mindex-1; omega1=0; omega2=0; for m=1:threshold-1 omega1=omega1+hist(m); end omega2=1-omega1; miu1=0; miu2=0; for m=1:colorlevel if mxigmaB2 finalT=threshold; xigmaB2
8、=xigmaB21; endendfT=finalT/255 %阈值归一化T=graythresh(I2_gray)%matlab函数求阈值I3=im2bw(I2_gray,T);subplot(3,3,7);imshow(I3);title(形态学后自适应阈值二值化);%未形态学运算自适应阈值二值化%rgb转灰度if isrgb(I1)=1 I1_gray=rgb2gray(I1);else I1_gray=I1;endI1_double=double(I1_gray);%转化为双精度wid,len=size(I1_gray);colorlevel=256; %灰度级hist=zeros(c
9、olorlevel,1);%直方图%threshold=128; %初始阈值%计算直方图for i=1:wid for j=1:len m=I1_gray(i,j)+1; hist(m)=hist(m)+1; endendhist=hist/(wid*len);%直方图归一化miuT=0;for m=1:colorlevel miuT=miuT+(m-1)*hist(m);endxigmaB2=0;for mindex=1:colorlevel threshold=mindex-1; omega1=0; omega2=0; for m=1:threshold-1 omega1=omega1+h
10、ist(m); end omega2=1-omega1; miu1=0; miu2=0; for m=1:colorlevel if mxigmaB2 finalT=threshold; xigmaB2=xigmaB21; endendfT=finalT/255 %阈值归一化T=graythresh(I1_gray)%matlab函数求阈值I5=im2bw(I1_gray,T);subplot(3,3,9);imshow(I5);title(未形态学运算自适应阈值二值化); 四、设计结果及分析 从结果可以看出进行过形态学运算的图像星星更为明亮,效果更为好一些,而未进行形态学运算的图像星星数量较
11、少,亮度暗一些,可以得出结论,经过形态学运算的图像更好。 五、总结:实验对星空图像进行了形态学运算处理,它的基本思想是用具有一定形态的结构元素去度量和提取图像中的对应形状以达到对图像进行分析和识别的目的。形态学的应用可以简化图像数据,保持它们基本的形状特性,并除去不相干的结构。 六、设计体会通过本次实验掌握了形态学运算的基本方法,数学形态学对图像的处理具有直观上的简明性和数学上的严谨性,在定量描述图像的形态特征上具有独特的优势,为基于形状细节进行图像处理提供了强有力的手段。建立在集合理论基础上的数学形态学,主要通过选择相应的结构元素采用膨胀、腐蚀、开启、闭合4种基本运算的组合来处理图像。数学形态学在图像处理中的应用广泛,有许多实用的算法,但在每种算法中结构元素的选取都是一个重要的问题.腐蚀与膨胀不是相反的运算,即腐蚀后的图像不能通过膨胀直接恢复成原来的图像,膨胀后的图像也不能通过腐蚀直接恢复成原来的图像。但是可以通过闭合和开启运算对腐蚀或膨胀后的图像进行一定的修复。腐蚀、膨胀操作的结果受结构元素的影响。 七、参考文献:1 杨杰、黄朝兵.数字图像处理及MATLAB实现.电子工业出版社2 自适应阈值算法