1、数字图像处理 作业1数字图像处理报告标题:01 报告编号: 课程编号: 学生姓名: 截止日期: 上交日期:摘要(1)编写函数计算灰度图像的均方误差(MSE)、信噪比(SNR)、峰值信噪比(PSNR)、平均绝对误差(MAE);(2)编写函数对灰度图像经行降采样,直接消除像素以及消除像素前进行简单平滑滤波;(3)编写函数对图像进行放大,分别使用像素直接复制和双线性插值的方法:(4)编写函数用题目给出的量化步骤Q去量化灰度图像,并给出相应的MSE和直方图;(5)编写函数对灰度图像执行直方图均衡化,显示均衡前后的直方图。同时,熟悉使用MATLAB,并且熟练操作对图像进行各种修改变换等。KEY WORD
2、 :MATLAB MSE、PSNR 直方图量化技术探讨 数字图像处理是基于Matlab来实现的,由于Matlab 独特的功能和对矩阵,图像,函数灵活的处理,因而用于图像的处理相当的方便。task1 均方误差(MSE),信噪比(SNR),峰值信噪比(PSNR),平均绝对误差(MAE)。可以使用使用for循环语句,分别计算图像MSE/SNR/PSNR/MAE,具体的计算公式见附录代码,下面只附运算原理代码均方误差(MSE): sum=sum+(a(i,j)-b(i,j)2; MSE=sum/(M*N) 信噪比(SNR): sum2=sum2+a(i,j)2; SNR=10*log10(sum2/M
3、SE) 峰值信噪比(PSNR):sum=sum+(a(i,j)-b(i,j)2; PSNR=10*log10(2552/MSE) 平均绝对误差(MAE): sum=sum+a(i,j)+b(i,j); MAE=sum/(M*N) 在每次对同一个图像处理时它们的均方误差(MSE),信噪比(SNR),峰值信噪比(PSNR),平均绝对误差(MAE)都会有所不同,因为它是原图像与加噪后的图像比较,而电脑的每次操作都会对加噪过得图像有影响。task3按比例缩小灰度图像(1)直接消除像素点:I1=g(1:m:end,1:m:end);I1 为缩小后的图像,g为原图。(2)先平滑滤波再消除像素点:滤波函数,
4、g=imfilter(I,w,corr,replicate);task4对图像的放大运用了pixel repetition法以及双线性插值法:它有三种插值法:即最近邻插值(pixel repetition)、双线性插值、双三次插值(缩放倍数为0.5) ;缩放与放大由给定的参数来确定。;缩放与放大由给定的参数来确定。而缩小则同样适用I1=g(1:m:end,1:m:end); 而放大的代码为“J=imresize(I,m,nearest);%使用pixel repetition法” 和 “J=imresize(I,m,bilinear);%使用双线性插值法 ”放大倍数更改m值即可task4对图像
5、的量化,使用“J=histeq(I,x); ”,x为可变的量化步长task5 灰度图像的量化和直方图均衡化直接调用函数。“J=histeq(I)”“imhist(I,64)”结果:图像的结果Task1 mse =0.0426psnr =61.8377SNR =68.5982MAE =262.2853mse =0.0443psnr =61.6711SNR =73.3907MAE =262.2102处理给定的测试图像“Lena”, 以其原始的形式和加过噪声之后的形式。(用其他图像代替)Task2编写MATLAB函数通过两种不同的方法抽取一幅灰度图像从原来的大小到给定的输出尺寸: (用其他图像代替)
6、处理给定的测试图像“Living Room” ,按给定比例系数缩小:2:1, 4:1, 8:1,16:1(a)直接消除像素(b)消除像素前进行初步的图像滤波)Task3编写MATLAB函数通过两种不同的方法放大一幅灰度图像从原来的大小到给定的输出尺寸 (a)像素重复(b)双线性插值内插用上述方法将Task 2放大回原尺寸并对使用MATLAB方法对原图像以及放大后的图像计算均方误差和峰值信噪比(a)像素重复2:1 时MSE = 2.6753e+003 PSNR = 13.85714:1 时MSE = 2.4600e+003 PSNR = 14.22148:1 时MSE = 2.4696e+003
7、 PSNR = 14.204516:1 时MSE = 2.0887e+003 PSNR = 14.9321(b)双线性插值内插2:1 时MSE = 3.3733e+003 PSNR =12.85034:1 时MSE =2.6291e+003 PSNR =13.93278:1 时MSE =2.4658e+003 PSNR =14.211316:1 时MSE =2.4248e+003 PSNR =14.2840在相同尺寸减少率下,确定哪些组合缩小/放大的方法能提供最小均方误差以及最大峰值信噪比最小均方误差最大最大峰值信噪比 (a)像素重复 16:1 时MSE = 2.0887e+003 PSNR
8、= 14.9321(b)双线性插值内插16:1 时MSE =2.4248e+003 PSNR =14.2840Task4编写MATLAB函数以量化步长Q来量化(数字转换)灰度图像。以量化步长Q=2, 4, 8 16, 32, 64, 128 处理给定的测试图像“Lena”(用其他图像代替)不同量化步长Q量化后的图像的对比对每一个量化步长显示量化的图像以及它相应的直方图。显示测试图像及其直方图。 量化后的图像的直方图对比对Task 1用MATLAB编写的方法计算原始以及量化(数字转换)图像的均方误差Q=2 时 MSE=8.6904e+003Q=4时 MSE=6.7394e+003Q=8时 MSE
9、=5.3419e+003Q=16时 MSE=4.8395e+003Q=32时 MSE=4.7529e+003Q=64时 MSE=4.7060e+003Q=128时MSE=4.6526e+003Task5编写MATLAB函数对图像“ Fig0316(1)(top_left)” 和图像“ Fig0316(4)(bottom_left) ”分别地进行直方图均衡,并在直方图均衡前后显示图像的直方图(用其他图像代替)结果探讨Task1在每次对同一个图像处理时它们的均方误差(MSE),信噪比(SNR),峰值信噪比(PSNR),平均绝对误差(MAE)都会有所不同,因为它是原图像与加噪后的图像比较,而电脑的每
10、次操作都会对加噪过得图像有影响。给原图像加入高斯噪音,则可看出SNR与PSNR的变化,因为其实评价噪声的;MSE可以评价数据的变化程度,MSE的值越小,说明数据具有更好的精确度。MAE是将各次测量的绝对误差取绝对值后再求平均值。Task2对原图像直接消除像素的降采样和经过平滑滤波后得到的降采样采样对比来看,经过平滑滤波后,图像模糊一些,但灰度值变化更加平滑,整体效果好于直接消除像素Task3pixel repetition(像素重复)和双线性插值法对图像的缩放,其处理效果相近,但从MSE和PSNR值来看,双线性插值法更好。但运算时间较长将缩小后的图像再放大,还原效果都较好Task4可以看出,对
11、图像进行量化后,随着量化步长越大,图像越接近原图;当Q=2时,图像几乎全白,而直方图灰度值也极端的集中在0和250两个值上。随着量化步长增加,图像细节几个方面均有明显转变,而直方图灰度值也逐渐向着整个灰度级数覆盖,最后集中于10到250之间Task5第一幅图,绘制其直方图可以看到直方图灰度值主要集中在100到150之间,均衡化后灰度值覆盖整个灰度级数。第二幅图图相比相对亮一些,绘制其直方图可以看到直方图灰度值主要集中在60到120以及200到250之间,均衡化后灰度值覆盖整个灰度级数。附录:程序列表第一题: 均方误差(MSE): sum=sum+(a(i,j)-b(i,j)2; MSE=sum
12、/(M*N) 峰值信噪比(PSNR) sum=sum+(a(i,j)-b(i,j)2; PSNR=10*log10(2552/MSE) 计算MSE; PSNR;clear all;close all;I=imread(C:UsersDark SeleeDesktopbbpg); %录入图像figure(1),imshow(I);X=rgb2gray(I); %将真彩色图像转换为灰度图像。height width=size(X);X=im2double(X);A=imnoise(X,gaussian,0,0.05); %加高斯噪声figure(2),imshow(A);%利用两组for循环,即可
13、实现计算sigma1=0;for i=1:height for j=1:width sigma1=sigma1+(X(i,j)-A(i,j)2; endendmse=(sigma1/(height*width) %均方误差psnr=10*log10(2552)/mse) %峰值信噪比信噪比(SNR)sum2=sum2+a(i,j)2; SNR=10*log10(sum2/MSE)计算SNR; clear all;close all;J=imnoise(I,gaussian); %加噪声a=double(I); b=double(J); M,N=size(I);sum=0; %先计算出MSEfo
14、r i=1:M; for j=1:N; sum=sum+(a(i,j)-b(i,j)2; end;end; MSE=sum/(M*N) sum2=0; %同上,利用两组for循环,即可实现计算for i=1:M; for j=1:N; sum2=sum2+a(i,j)2; end; end; SNR=10*log10(sum2/MSE) 平均绝对误差(MAE)sum=sum+a(i,j)+b(i,j); MAE=sum/(M*N)计算MAE; J=imnoise(I,gaussian); %加噪声a=double(I); b=double(J); M,N=size(I);sum=0; for
15、i=1:M; for j=1:N; sum=sum+a(i,j)+b(i,j); end; end; MAE=sum/(M*N) 处理给定的测试图像, 以其原始的形式和加过噪声之后的形式clear all;close all;I=imread(C:UsersDark SeleeDesktopaa.jpg); %读入图像figure(1),imshow(I);X=rgb2gray(I); %将真彩色图像转换为灰度图像。height width=size(X);X=im2double(X);A=imnoise(X,gaussian,0,0.05); %加高斯噪声figure(2),imshow(A
16、); %显示图像第二题直接消除像素点 X=imread(C:UsersDark SeleeDesktopbb.jpg); %读图像I=rgb2gray(X);figure(2); m=imfilter(I,w,corr,replicate); subplot(3,2,1); imshow(I); title(原图) subplot(3,2,3); M=g(1:2:end,1:2:end); % 以2:1的比例缩小 Mimshow(I1); title(2:1 图) subplot(3,2,4); M2=m(1:4:end,1:4:end); %以4:1的比例缩imshow(I2); title
17、(4:1 图) subplot(3,2,5); M3=m(1:8:end,1:8:end); %以8:1的比例缩小imshow(I3); title(8:1 图) subplot(3,2,6); M4=m(1:16:end,1:16:end); %以16:1的比例缩小imshow(I4); title(16:1图)先滤波再消除像素点 X=imread(C:UsersDark SeleeDesktopbb.jpg); %读图像I=rgb2gray(X);figure(2); m=1 1 1;1 1 1;1 1 1/9; %为领域平均模板,为缩小做处理g=imfilter(I,w,corr,rep
18、licate); %对原图像进行平滑滤波处理 subplot(3,2,1); imshow(I); subplot(3,2,2); imshow(g); title(滤波后的图)subplot(3,2,3); M1=m(1:2:end,1:2:end); % 以2:1的比例缩小 imshow(I1); title(2:1 图) subplot(3,2,4); M2=m(1:4:end,1:4:end); %以4:1的比例缩小 imshow(I2); title(4:1 图) subplot(3,2,5); M3=m(1:8:end,1:8:end); %以8:1的比例缩小 imshow(I3)
19、; title(8:1 图)subplot(3,2,6); M4=m(1:16:end,1:16:end); %以16:1的比例缩小 imshow(I4); title(16:1 图)第三题pixel repetition法2:1的图像处理 A=imread( C:UsersDark SeleeDesktopbb.jpg ); %读图像I=rgb2gray(A);figure(1); IM=I(1:2:end, 1:2:end); subplot(1,3,1); imshow(I); title(原图像); subplot(1,3,2); imshow(IM); title(按2:1缩小的图像
20、);J=imresize(I,2,nearest); %使用pixel repetition法 subplot(1,3,3); imshow(J); title(按1:2放大的图像); %负责运算MSE与PSNR的函数,与第一题代码一致a=double(I); b=double(J); M,N=size(I); sum=0; for i=1:M; for j=1:N; sum=sum+(a(i,j)-b(i,j)2; end;end;MSE=sum/(M*N) PSNR=10*log10(2552/MSE)双线性插值法 2:1的图像处理 A=imread( C:UsersDark SeleeD
21、esktopbb.jpg ); %读图像I=rgb2gray(A);figure(1); IM=I(1:2:end, 1:2:end); subplot(1,3,1); imshow(I); title(原图像); subplot(1,3,2); imshow(IM); title(按2:1缩小的图像);J=imresize(I,2,bilinear); %使用双线性插值法 subplot(1,3,3); imshow(J); title(按1:2放大的图像); %负责运算MSE与PSNR的函数,与第一题代码一致a=double(IM); b=double(J); M,N=size(I); s
22、um=0; for i=1:M; for j=1:N; sum=sum+(a(i,j)-b(i,j)2; end;end;MSE=sum/(M*N) PSNR=10*log10(2552/MSE)两题的4:1 、8:1 、16:1的图像处理的代码基本与2:1的一致,只是将“1=I(1:2:end,1:2:end); J=imresize(I,2,bilinear); ”分别替换为“IM= (1:4:end,1:4:end); J=imresize(I,4,bilinear); ”“I M = (1:8:end,1:8:end); J=imresize(I,8,bilinear); ”“1 M
23、=I(1:16:end,1:16:end); J=imresize(I,16,bilinear); ”即可第四题Q=2clear all;close all;A=imread(C:UsersDark SeleeDesktopdd.jpg); %读图像I=rgb2gray(A);figure; J=histeq(I,2); subplot(2,2,1); imshow(I); title(原始图像) subplot(2,2,2); imhist(I); title(原始图像直方图) subplot(2,2,3); imshow(J); title(量化后图像) subplot(2,2,4); i
24、mhist(J); title(量化后图像直方图) %计算MSE的代码,与第一题一致 M,N=size(I); a=double(I); b=double(J); sum=0; for i=1:M; for j=1:N; sum=sum+(a(i,j)-b(i,j)2; end; end; MSE=sum/(M*N)Q=4 、Q=8 、Q=16、 Q=32 、Q=64 、Q=128的图像处理的代码基本Q=2的一致,只是将“J=histeq(I,2);”分别替换为“J=histeq(I,4);”“J=histeq(I,8);”“J=histeq(I,16);”“J=histeq(I,32);”“
25、J=histeq(I,64);”即可(下代码仅用作方便显示对比B=histeq(A,2); B1=imhist(B); C=histeq(A,4); C1=imhist(C); D=histeq(A,8); D1=imhist(D); E=histeq(A,16); E1=imhist(E); F=histeq(A,32); F1=imhist(F); G=histeq(A,64); G1=imhist(G); H=histeq(A,128);H1=imhist(H);subplot(4,2,1);imshow(B1); title(Q=2)subplot(4,2,2);imshow(C1);
26、 title(Q=4) subplot(4,2,3);imshow(D1); title(Q=8) subplot(4,2,4);imshow(E1); title(Q=16) subplot(4,2,5);imshow(F1); title(Q=32) subplot(4,2,6);imshow(G1); title(Q=64) subplot(4,2,7);imshow(H1); title(Q=128) 第五题clear all;close all;A=imread(C:UsersDark SeleeDesktopcc.png); %读图像Fig0316(4)(bottom_left)I=rgb2gray(A);J=histeq(I); %用直方图均衡来增强对比度figure;subplot(2,2,1);imshow(I); title(原始图像) subplot(2,2,2);imshow(J); title(增强对比度后的图像) subplot(2,2,3);imhist(I,64); title(原始直方图) subplot(2,2,4);imhist(J,64) ;title(增强对比度后的直方图)
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1