资源描述:
《MATLAB小型图像处理系统》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、实验三小型图像处理系统一、实验目的1、使学生加深对数字图像处理主要功能的理解;2、要求学生使用MatLab软件完成具有一些简单功能的小型图像处理系统。二、实验原理(1)基本原理数字图像处理是研究图像的获取、传输、存储,变换、显示、理解与综合应用的一门崭新学科。数字图像处理的主要任务包括:图像的数字化、图像变换、图像增强、图像的恢复、图像的压缩和编码、图像分割等。其中图像变换的目的在于:使图像处理问题简化;有利于图像特征提取。常用的图像变换工具有DFT、DCT和小波变换等。图像增强目的是获得更“好”、更“有用”的图像。根据所处理的空间不同,图像增强的方法分为:基于图像域
2、的方法,即直接在图像所在的空间进行处理;基于变换域的方法,即在图像变换域间接进行,有时也叫频域处理。灰度直方图描述了图像的概貌。直方图变换后可使图像的灰度间距拉开或使灰度分布均匀,从而增大对比度,使图像细节清晰,达到增强目的。直方图均衡化是一种常用的直方图变换方法,它把原始图的直方图变换为均匀分布的形式,增加像素灰度值的动态范围,提高图像对比度。大部分的噪声都可以看作是随机信号,对图像的影响可以看作是孤立的。某一像素,如果它与周围像素点相比,有明显的不同,则该点被噪声感染了。去除噪声的方法较多,如邻域平均法、中值滤波、边界保持类滤波、多幅图像平均、低通滤波处理等。图像
3、分割是数字图像处理中一个具有挑战性的研究内容,可以将图像分割理解为:把图像分成互不重叠的区域,并提取感兴趣的目标。图像分割的基本思路是:从简到难,逐级分割;控制背景环境,降低分割难度;把焦点放在增强感兴趣对象,缩小不相干图像成分的干扰上。基于灰度值的基本特性不连续性和相似性,图像分割的基本策略:策略1:检测图像像素灰度级的不连续性,找到点、线(宽度为1)、边(不定宽度),先找边,后确定区域;策略2:检测图像像素的灰度值的相似性,通过选择阈值,找到灰度值相似的区域,区域的外轮廓就是对象的边。在图像分割的众多算法中,图像的阈值分割技术是实现相对简单的一种方法。(2)参考程
4、序clear;clc;closeall;chos=0;possibility=11;whilechos~=possibility,chos=menu('图像处理系统','输入图像','灰度化','直方图均衡','镜像翻转','添加噪声','去除噪声','伪彩色增强','阈值分割','边缘检测','退出');ifchos==1,%输入图像clc;[namefile,pathname]=uigetfile('*.*','Selectimage');ifnamefile~=0I=imread(strcat(pathname,namefile));imshow(I);titl
5、e('输入图像');endend%灰度化ifchos==2,%灰度化I1=rgb2gray(I);imshow(I1);title('灰度化')endifchos==3,%直方图均衡I2=histeq(I1);figure,imshow(I2);figure,imhist(I2);title('直方图均衡');endifchos==4,%镜像翻转I3=fliplr(I1);imshow(I3);title('镜像翻转');endifchos==5,%添加噪声snoise=0.1*randn(size(I1));I4=imadd(I1,im2uint8(snoise))
6、;imshow(I4);title('添加噪声');endifchos==6,%去除噪声I5=medfilt2(I1);imshow(I5);title('去除噪声');endifchos==7,%伪彩色增强I1=double(I1);[m,n]=size(I1);c=256;fori=1:mforj=1:nifI1(i,j)<=c/4R(i,j)=0;G(i,j)=4*I5(i,j);B(i,j)=c;elseifI1(i,j)<=c/2R(i,j)=0;G(i,j)=c;B(i,j)=-4*I1(i,j)+2*c;elseifI1(i,j)<=3*c/4R(i,j
7、)=4*I1(i,j)-2*c;G(i,j)=c;B(i,j)=0;elseR(i,j)=c;G(i,j)=-4*I1(i,j)+4*c;B(i,j)=0;endendendendendfori=1:mforj=1:nI6(i,j,1)=R(i,j);I6(i,j,2)=G(i,j);I6(i,j,3)=B(i,j);endendI6=I6/256;imshow(I6);title('伪彩色增强');endifchos==8,%阈值分割[m,n]=size(I1);N=m*n;num=zeros(1,256);p=zeros(1,256);fori=