《东南大学数字图像处理实验报告要点(共18页).doc》由会员分享,可在线阅读,更多相关《东南大学数字图像处理实验报告要点(共18页).doc(18页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上数字图像处理实验报告学号: 姓名:付永钦 日期:2014/6/71. 图像直方图统计原理:灰度直方图是将数字图像的所有像素,按照灰度值的大小,统计其所出现的频度。通常,灰度直方图的横坐标表示灰度值,纵坐标为半个像素个数,也可以采用某一灰度值的像素数占全图像素数的百分比作为纵坐标。算法:clear allPS=imread(girl-grey1.jpg); %读入JPG彩色图像文件figure(1);subplot(1,2,1);imshow(PS);title(原图像灰度图);m,n=size(PS); %测量图像尺寸参数GP=zeros(1,256); %预创建存放
2、灰度出现概率的向量for k=0:255 GP(k+1)=length(find(PS=k)/(m*n); %计算每级灰度出现的概率endfigure(1);subplot(1,2,2);bar(0:255,GP,g) %绘制直方图axis(0 255 min(GP) max(GP);title(原图像直方图)xlabel(灰度值)ylabel(出现概率)处理结果:结果分析:由图可以看出,原图像的灰度直方图比较集中。2. 图像的线性变换原理:直方图均衡方法的基本原理是:对在图像中像素个数多的灰度值(即对画面起主要作用的灰度值)进行展宽,而对像素个数少的灰度值(即对画面不起主要作用的灰度值)进行
3、归并。从而达到清晰图像的目的。算法:clear all%一,图像的预处理,读入彩色图像将其灰度化PS=imread(girl-grey1.jpg); figure(1);subplot(2,2,1);imshow(PS);title(原图像灰度图);%二,绘制直方图m,n=size(PS); %测量图像尺寸参数GP=zeros(1,256); %预创建存放灰度出现概率的向量for k=0:255 GP(k+1)=length(find(PS=k)/(m*n); %计算每级灰度出现的概率endfigure(1);subplot(2,2,2);bar(0:255,GP,g) %绘制直方图axis(
4、0 255 min(GP) max(GP);title(原图像直方图)xlabel(灰度值)ylabel(出现概率)%三,直方图均衡化S1=zeros(1,256);for i=1:256 for j=1:i S1(i)=GP(j)+S1(i); %计算Sk endendS2=round(S1*256)+0.5); %将Sk归到相近级的灰度for i=1:256 GPeq(i)=sum(GP(find(S2=i); %计算现有每个灰度级出现的概率endfigure(1);subplot(2,2,4);bar(0:255,GPeq,b) %显示均衡化后的直方图axis(0 255 min(GPe
5、q) max(GPeq);title(均衡化后的直方图)xlabel(灰度值)ylabel(出现概率)%四,图像均衡化PA=PS;for i=0:255 PA(find(PS=i)=S2(i+1); %将各个像素归一化后的灰度值赋给这个像素endfigure(1);subplot(2,2,3);imshow(PA) %显示均衡化后的图像 title(均衡化后图像)imwrite(PA,PicEqual.bmp);处理结果:结果分析:通过原始图像和均衡化后的图像对比,均衡化后图像由彩色图像变为了灰度图像。原始图像直方图与均衡化后直方图对比,均衡化后的直方图灰度值更加平均,在整幅图像中不在集中。3
6、. 图象平滑消噪处理原理:图像的平滑方法是一种实用的图像处理技术,能减弱或消除图像中的高频率分量,但不影响低频率分量。因为高频率分量主要对应图像中的区域边缘等灰度值具有较大较快变化的部分,平滑滤波将这些分量滤去可减少局部灰度起伏,使图像变得比较平滑。实际应用中,平滑滤波还可用于消除噪声,或者在提取较大目标前去除过小的细节或将目标内的小间断连接起来。它的主要目的是消除图像采集过程中的图像噪声,在空间域中主要利用邻域平均法、中值滤波法和选择式掩模平滑法等来减少噪声;在频率域内,由于噪声主要存在于频谱的高频段,因此可以利用各种形式的低通滤波器来减少噪声。算法:clear all;x=imread(s
7、mooth_Gauss.jpg); n=5;a(1:n,1:n)=1; %a即nn模板,元素全是1height, width=size(x); %hightn,widthnx1=double(x);x2=x1;for i=1:height-n+1 for j=1:width-n+1 c=x1(i:i+(n-1),j:j+(n-1).*a; %取出x1中从(i,j)开始的n行n列元素与模板相乘 s=sum(sum(c); %求c矩阵中各元素之和 x2(i+(n-1)/2,j+(n-1)/2)=s/(n*n); %将与模板运算后的各元素的均值赋给模板中心位置的元素 endend%未被赋值的元素取原
8、值d=uint8(x2);figure(1);subplot(1,2,1);imshow(x);title(原图像);figure(1);subplot(1,2,2);imshow(d);title(5*5模板均值滤波后的图像);处理结果:结果分析:由图像可知,原图像的噪声得到了较好的消除。实验结果比较理想。4. 彩色图象锐化处理原理:图像平滑往往使图像中的边界、轮廓变得模糊,为了减少这类不利效果的影响,需要利用图像锐化技术,使图像的边缘变得清晰。算法:clear all;rgb = imread(acute.bmp);figure(1);subplot(2,2,1);imshow(rgb);
9、title(原图);lapmatrix = 1 1 1; 1 -8 1; 1 1 1;I = imfilter(rgb, lapmatrix, replicate);figure(1);subplot(2,2,2);imshow(I);title(图像边缘锐化);I_sharp = double(rgb) - double(I);figure(1);subplot(2,2,3);imshow(uint8(I_sharp);title(锐化后的图像);处理结果:结果分析:由处理后的图像与原图像对比,可以看出处理后的图像细节特征得到了增强,得到了较好的锐化效果。5. 中值滤波处理原理:统计滤波器是
10、一种非线性的空间滤波器,它的响应基于图像滤波器包围的图像区域中像素的排列,然后用统计排序结果决定的值代替中心像素的值。统计滤波器中最常见的例子是中值滤波器,是将邻域内像素灰度的中值代替该像素的值。对处理椒盐噪声非常有效。 算法:clear all;x=imread(r.bmp); x=rgb2gray(x);n=5;height, width=size(x); %输入图像是pq的,且pn,qnx1=double(x);x2=x1;for i=1:height-n+1 for j=1:width-n+1 c=x1(i:i+(n-1),j:j+(n-1); %取出x1中从(i,j)开始的n行n列元
11、素,即模板(nn的) e=c(1,:); %是c矩阵的第一行 for u=2:n e=e,c(u,:); %将c矩阵变为一个行矩阵 end mm=median(e); %mm是中值 x2(i+(n-1)/2,j+(n-1)/2)=mm; %将模板各元素的中值赋给模板中心位置的元素 endend %未被赋值的元素取原值d=uint8(x2);figure(1);subplot(1,2,1);imshow(x);title(原图像);figure(1);subplot(1,2,2);imshow(d);title(5*5模板中值滤波后的图像);处理结果:结果分析:由处理后的图像可知,原图像中小猫脸
12、上的圆圈得到了较好的消除。6. 伪彩色增强处理原理:可以有多种方式实现从灰度空间到彩色空间的变换。最简单的一种是把灰度 图像的灰度级从0255 分成255 个区间,给每个区间指定一种彩色。这种方法较 简单,但变换出的彩色有限。 从灰度空间到彩色空间的一种有代表性的变换方式是将源图像 f(x,y)的灰 度经红、绿、蓝3 种不同变换,变成3 基色的分量R(x,y)、G(x、y)、B(x、y), 生成相应的彩色。彩色的含量由变换函数而定。 还有一种伪彩色增强也可通过频率域处理来实现。输入图像的傅立叶变换通 过三个不同的滤波器被分成不同的频率分量,对各频率分量分别进行傅立叶逆变 换,其结果进一步处理(
13、如直方图均衡化或规定化),然后进行彩色合成就能得 到增强后的彩色图像。算法:clear all;A=imread(pseudo.bmp);I=rgb2gray(A);I=double(I);m,n=size(I);L=256;R=zeros(m,n);G=zeros(m,n);B=zeros(m,n);s1=find(I=L/4); %0-L/4R(s1)=0;G(s1)=4*I(s1);B(s1)=L;s2=find(IL/4) ; %L/4-L/2R(s2)=0;G(s2)=L;B(s2)=-4*I(s2)+2*L;s3=find(L/2I&I=3*L/4); %L/2-3L/4R(s3)
14、=4*I(s3)-2*L;G(s3)=L;B(s3)=0;s4=find(3*L/4I&I gradThreshold)newGrayPic(j,k)=255;elsenewGrayPic(j,k)=0;endendendfigure,imshow(newGrayPic);title(梯度法算子的处理结果)处理结果:结果分析:由处理后的图像知,梯度法算子较好地勾勒出了图像的轮廓,但比较容易受到噪声的影响。(2) Roberts算子原理:算法:clear;sourcePic=imread(edge.jpg); %读取原图像grayPic=mat2gray(sourcePic); %转换成灰度图像
15、m,n=size(grayPic);newGrayPic=grayPic;%为保留图像的边缘一个像素robertsNum=0; %经roberts算子计算得到的每个像素的值robertThreshold=0.2; %设定阈值for j=1:m-1 %进行边界提取for k=1:n-1robertsNum = abs(grayPic(j,k)-grayPic(j+1,k+1) + abs(grayPic(j+1,k)-grayPic(j,k+1);if(robertsNum robertThreshold)newGrayPic(j,k)=255;elsenewGrayPic(j,k)=0;end
16、endendfigure,imshow(newGrayPic);title(roberts算子的处理结果)处理结果:结果分析:采用对角线方向相邻两像素之差表示信号的突变,检测水平和垂直方向边缘的性能好于斜线方向,定位精度比较高,但对噪声敏感,检测出的边缘较细。prewitt算子原理:因为平均能减少或消除噪声,Prewitt梯度算子法就是先求平均,再求差分来求梯度。利用检测模板可求得水平和垂直方向的梯度,再通过梯度合成和边缘点判定,就可得到平均差分法的检测结果。算法:clear;sourcePic=imread(edge.jpg);%读取原图像grayPic=mat2gray(sourcePic
17、);%转换成灰度图像m,n=size(grayPic);newGrayPic=grayPic;%为保留图像的边缘一个像素PrewittNum=0;%经Prewitt算子计算得到的每个像素的值PrewittThreshold=0.5;%设定阈值for j=2:m-1 %进行边界提取for k=2:n-1PrewittNum=abs(grayPic(j-1,k+1)-grayPic(j+1,k+1)+grayPic(j-1,k)-grayPic(j+1,k)+grayPic(j-1,k-1)-grayPic(j+1,k-1)+abs(grayPic(j-1,k+1)+grayPic(j,k+1)+
18、grayPic(j+1,k+1)-grayPic(j-1,k-1)-grayPic(j,k-1)-grayPic(j+1,k-1);if(PrewittNum PrewittThreshold)newGrayPic(j,k)=255;elsenewGrayPic(j,k)=0;endendendfigure,imshow(newGrayPic);title(Prewitt算子的处理结果)处理结果:结果分析:对噪声有平滑作用,检测出的边缘比较粗,定位精度低,容易损失角点。 Sobel算子 原理:Sobel算子是典型的基于一阶导数的边缘检测算子,由于该算子中引入了类似局部平均的运算,因此对噪声具有
19、平滑作用,能很好的消除噪声的影响。Sobel算子包含两组3x3的矩阵,分别为横向及纵向模板,将之与图像作平面卷积,即可分别得出横向及纵向的亮度差分近似值。算法:clear;sourcePic=imread(edge.jpg);%读取原图像grayPic=mat2gray(sourcePic);%转换成灰度图像m,n=size(grayPic);newGrayPic=grayPic;%为保留图像的边缘一个像素sobelNum=0;%经sobel算子计算得到的每个像素的值sobelThreshold=0.8;%设定阈值for j=2:m-1 %进行边界提取for k=2:n-1sobelNum=a
20、bs(grayPic(j-1,k+1)+2*grayPic(j,k+1)+grayPic(j+1,k+1)-grayPic(j-1,k-1)-2*grayPic(j,k-1)-grayPic(j+1,k-1)+abs(grayPic(j-1,k-1)+2*grayPic(j-1,k)+grayPic(j-1,k+1)-grayPic(j+1,k-1)-2*grayPic(j+1,k)-grayPic(j+1,k+1);if(sobelNum sobelThreshold)newGrayPic(j,k)=255;elsenewGrayPic(j,k)=0;endendendfigure,imsh
21、ow(newGrayPic);title(Sobel算子的处理结果)处理结果:结果分析:单独使用Sobel算子做边缘检测,边缘定位精度不高,有时还可能对非边缘像素的响应大于某些边缘处的响应或者响应差别不是很大,造成漏检或误检,但是它对噪声具有较好的鲁棒性。(5)Kirsch算子原理:Kirsch算子由8个33窗口模扳组成、每个模板分别代表一个特定的检测方向,其模板算子如图2.3.1所示。 在进行边缘检测时,把M0-M7所表示的边缘模板(加权矩阵)分别与图像中的一个33区域相乘,选取输出值为最大的模板。然后,把这一最大输出值作为中央像素点上的边缘强度,把取得最大值的边缘模板Mk的方向k(k的取值
22、如图2.3.2所示)作为其边缘方向。假设图像中一点P(i,j)及其八邻域的灰度如图3.3.3所示,并设Qk(k0,1,7)为图像经过kirsch算子第k个模板处理后得到的k方向上的边缘强度,则P(i,j)的边缘强度为s(i,j)=max|qk|(k=0,1,7),而相应的边缘方向D(i,j)=k|qk为最大值 图2.3.1 图2.3.2 图2.3.3算法:clear all close all A=imread(edge.jpg); mask1=-3,-3,-3;-3,0,5;-3,5,5; mask2=-3,-3,5;-3,0,5;-3,-3,5; mask3=-3,5,5;-3,0,5;-
23、3,-3,-3; mask4=-3,-3,-3;-3,0,-3;5,5,5; mask5=5,5,5;-3,0,-3;-3,-3,-3; mask6=-3,-3,-3;5,0,-3;5,5,-3; mask7=5,-3,-3;5,0,-3;5,-3,-3; mask8=5,5,-3;5,0,-3;-3,-3,-3; I=im2double(A); d1=imfilter(I,mask1); d2=imfilter(I,mask2); d3=imfilter(I,mask3); d4=imfilter(I,mask4); d5=imfilter(I,mask5); d6=imfilter(I,m
24、ask6); d7=imfilter(I,mask7); d8=imfilter(I,mask8); dd=max(abs(d1),abs(d2); dd=max(abs(dd),abs(d3); dd=max(abs(dd),abs(d4); dd=max(abs(dd),abs(d5); dd=max(abs(dd),abs(d6); dd=max(abs(dd),abs(d7); dd=max(abs(dd),abs(d8); grad=mat2gray(dd); level=graythresh(grad); BW=im2bw(grad,level); figure,imshow(BW
25、); title(kirsch算子的处理结果)处理结果:结果分析:Kirsch算子是像素邻域的加权和,模板中心值较大,不但产生较好的边缘效果,而且对噪声具有平滑作用。但存在伪边缘,边缘比较粗且定位精度低。8. 使用小波分解产生多种分辨率图像原理:一个图像作小波分解后,可得到一系列不同分辨率的子图像,不同分辨率的子图像对应的频率是不相同的。高分辨率(即高频)子图像上大部分点都接近于0,越是高频这种现象越明显。对一个图像来说,表现一个图像最主要的部分是低频部分,所以一个最简单的压缩方法是利用小波分解,去掉图像的高频部分而只保留低频部分。算法:clc;clear all;a=imread(lenna
26、.jpg);X=rgb2gray(a);subplot(221);image(X);colormap(gray(256);title(原始图像);axis square;c,s=wavedec2(X,2,bior3.7);ca1=appcoef2(c,s,bior3.7,1);ch1=detcoef2(h,c,s,1);cv1=detcoef2(v,c,s,1);cd1=detcoef2(d,c,s,1);a1=wrcoef2(a,c,s,bior3.7,1);h1=wrcoef2(h,c,s,bior3.7,1);v1=wrcoef2(v,c,s,bior3.7,1);d1=wrcoef2(
27、d,c,s,bior3.7,1);c1=a1,h1;v1,d1;subplot(222);image(c1);axis squaretitle(分解后低频和高频信息);ca1=appcoef2(c,s,bior3.7,1);ca1=wcodemat(ca1,440,mat,0);ca1=0.5*ca1;subplot(223);image(ca1);colormap(gray(256);title(第一次压缩图像);axis squareca2=appcoef2(c,s,bior3.7,2);ca2=wcodemat(ca2,440,mat,0);ca2=0.25*ca2;subplot(224);image(ca2);colormap(gray(256);axis square;title(第二次压缩图像);处理结果:结果分析:从图中可以看出,第一次压缩我们是提取原始图像中小波分解第一层的低频信息,此时压缩效果较好,压缩比较小(约为1/3);第二次压缩是提取第一层分解低频部分的低频部分(即小波分解第二层的低频部分),其压缩比比较大(1/12),压缩效果在视觉上也基本过得去,它不需要经过其它处理即可获得较好的压缩效果。专心-专注-专业
限制150内