资源描述:
《数字图像处理 实验报告三.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、实验三直方图及灰度变换一,实验目的:学会绘制直方图,并且进行灰度变换。二,实验条件1,MATLAB软件2,典型的灰度,彩色图像。三,实验原理图像的灰度变换和灰度直方图变换。四,实验内容1,线性变换设计,从灰度区间[a,b]到[c,d]。其中a=min(x),b=max(x),c=0,d=255。2,用matlab语句自写一个程序并绘制直方图。3,直方图的均衡化。五,实验步骤1,线性变换设计,从灰度区间[a,b]到[c,d]。其中a=min(x),b=max(x),c=0,d=255。(1)设计的代码如下所示:I=imread('
2、a.jpg');J=rgb2gray(I);max1=max(max(J));min1=min(min(J));fori=1:287forj=1:287H(i,j)=0+((255-0)/(max1-min1))*(J(i,j)-min1);endendsubplot(1,2,1);imshow(J);subplot(1,2,2);imshow(H);图一原图像和线性变换后的图像(2)变换之后,计算两幅图的相似程度。方法一:计算图像相关系数rfg=corr2(J,H);方法二:计算两幅图像的标准差fori=1:287forj=1
3、:287cha=(J(i,j)-H(i,j))^2;sum=sum+cha;endendF=sqrt(double(sum/(287*287)));2,用matlab语句自写一个程序并绘制直方图(1)代码如下:A=zeros(1,256);fori=1:287forj=1:287A(J(i,j)+1)=A(J(i,j)+1)+1;endendplot(A);stem(A);图二plot(A)图三stem(A)3,直方图的均衡化(1)代码如下:A=zeros(1,256);%A是每一灰度级所占的个数fori=1:287forj=1
4、:287A(J(i,j)+1)=A(J(i,j)+1)+1;endendB=zeros(1,256);%B是每一灰度级个数占总个数的百分比fori=1:256B(i)=A(i)/(287*287);endC=zeros(1,256);&C是B概率的通过分布函数计算后的概率fori=1:256sum=0forj=1:isum=sum+B(j);endC(i)=sum;endD=zeros(1,256);%D是量化后修正的概率fori=1:256D(i)=round(C(i)*255)/255;endE=zeros(1,256);F
5、=zeros(1,256);%F是均衡化后各灰度级所占的个数count=0;fori=2:256ifround(C(i)*255)==round(C(i-1)*255)count=count+A(i);continue;endF(i-1)=A(i)+count;endplot(F);%显示均衡化后的直方图stem(F);图四plot(F)图五stem(F)一,讨论与分析1,在第一问中,由于所选区间的原因,导致线性变换后的图像与原图像区别不大,因此,计算两幅图的相关性时,不仅计算了图像相关系数,而且计算了两幅图像的标准差。2,Ma
6、tlab在矩阵存取上与C语言有不一样的地方,在编写程序的时候要加以注意。Matlab是从1位置开始取,而C语言里矩阵是从0开始存取。3,在编写问题三的程序中,要注意continue的应用,跳出当前循环,继续下一个循环。