数字图像处理 作业1Word格式文档下载.docx
《数字图像处理 作业1Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《数字图像处理 作业1Word格式文档下载.docx(26页珍藏版)》请在冰豆网上搜索。
task3
按比例缩小灰度图像
(1)直接消除像素点:
I1=g(1:
m:
end,1:
end);
I1为缩小后的图像,g为原图。
(2)先平滑滤波再消除像素点:
滤波函数,g=imfilter(I,w,'
corr'
'
replicate'
);
task4
对图像的放大运用了pixelrepetition法以及双线性插值法:
它有三种插值法:
即最近邻插值(pixelrepetition)、双线性插值、双三次插值(缩放倍数为0.5);
缩放与放大由给定的参数来确定。
;
而缩小则同样适用I1=g(1:
而放大的代码为“J=imresize(I,m,'
nearest'
%使用pixelrepetition法”和“J=imresize(I,m,'
bilinear'
%使用双线性插值法”
放大倍数更改m值即可
对图像的量化,使用“J=histeq(I,x);
”,x为可变的量化步长
task5
灰度图像的量化和直方图均衡化直接调用函数。
“J=histeq(I)”“imhist(I,64)”
结果:
图像的结果
Task1
mse=0.0426psnr=61.8377SNR=68.5982MAE=262.2853
mse=0.0443psnr=61.6711SNR=73.3907MAE=262.2102
处理给定的测试图像“Lena”,以其原始的形式和加过噪声之后的形式。
(用其他图像代替)
Task2
编写MATLAB函数通过两种不同的方法抽取一幅灰度图像从原来的大小到给定的输出尺寸:
(用其他图像代替)
处理给定的测试图像“LivingRoom”,按给定比例系数缩小:
2:
1,4:
1,8:
1,16:
1
(a)直接消除像素
(b)消除像素前进行初步的图像滤波)
Task3
编写MATLAB函数通过两种不同的方法放大一幅灰度图像从原来的大小到给定的输出尺寸
(a)像素重复
(b)双线性插值[内插]
用上述方法将Task2放大回原尺寸
并对使用MATLAB方法对原图像以及放大后的图像计算均方误差和峰值信噪比
1时MSE=2.6753e+003PSNR=13.8571
4:
1时MSE=2.4600e+003PSNR=14.2214
8:
1时MSE=2.4696e+003PSNR=14.2045
16:
1时MSE=2.0887e+003PSNR=14.9321
1时MSE=3.3733e+003PSNR=12.8503
1时MSE=2.6291e+003PSNR=13.9327
1时MSE=2.4658e+003PSNR=14.2113
1时MSE=2.4248e+003PSNR=14.2840
在相同尺寸减少率下,确定哪些组合缩小/放大的方法能提供最小均方误差以及最大峰值信噪比
最小均方误差最大最大峰值信噪比
(a)像素重复
Task4
编写MATLAB函数以量化步长Q来量化(数字转换)灰度图像。
以量化步长Q=2,4,816,32,64,128处理给定的测试图像“Lena”(用其他图像代替)
不同量化步长Q量化后的图像的对比
对每一个量化步长显示量化的图像以及它相应的直方图。
显示测试图像及其直方图。
量化后的图像的直方图对比
对Task1用MATLAB编写的方法计算原始以及量化(数字转换)图像的均方误差
Q=2时MSE=8.6904e+003
Q=4时MSE=6.7394e+003
Q=8时MSE=5.3419e+003
Q=16时MSE=4.8395e+003
Q=32时MSE=4.7529e+003
Q=64时MSE=4.7060e+003
Q=128时MSE=4.6526e+003
Task5
编写MATLAB函数对图像“Fig0316
(1)(top_left)”和图像“Fig0316(4)(bottom_left)”分别地进行直方图均衡,并在直方图均衡前后显示图像的直方图(用其他图像代替)
结果探讨
在每次对同一个图像处理时它们的均方误差(MSE),信噪比(SNR),峰值信噪比(PSNR),
平均绝对误差(MAE)都会有所不同,因为它是原图像与加噪后的图像比较,而电脑的每次操作都会对加噪过得图像有影响。
给原图像加入高斯噪音,则可看出SNR与PSNR的变化,因为其实评价噪声的;
MSE可以评价数据的变化程度,MSE的值越小,说明数据具有更好的精确度。
MAE是将各次测量的绝对误差取绝对值后再求平均值。
对原图像直接消除像素的降采样和经过平滑滤波后得到的降采样采样对比来看,经过平滑滤波后,图像模糊一些,但灰度值变化更加平滑,整体效果好于直接消除像素
pixelrepetition(像素重复)和双线性插值法对图像的缩放,其处理效果相近,但从MSE和PSNR值来看,双线性插值法更好。
但运算时间较长
将缩小后的图像再放大,还原效果都较好
可以看出,对图像进行量化后,随着量化步长越大,图像越接近原图;
当Q=2时,图像几乎全白,而直方图灰度值也极端的集中在0和250两个值上。
随着量化步长增加,图像细节几个方面均有明显转变,而直方图灰度值也逐渐向着整个灰度级数覆盖,最后集中于10到250之间
第一幅图,绘制其直方图可以看到直方图灰度值主要集中在100到150之间,均衡化后灰度值覆盖整个灰度级数。
第二幅图图相比相对亮一些,绘制其直方图可以看到直方图灰度值主要集中在60到120以及200到250之间,均衡化后灰度值覆盖整个灰度级数。
附录:
程序列表
第一题:
sum=sum+(a(i,j)-b(i,j))^2;
峰值信噪比(PSNR)sum=sum+(a(i,j)-b(i,j))^2;
计算MSE;
PSNR;
clearall;
closeall;
I=imread('
C:
\Users\DarkSelee\Desktop\bbpg'
%录入图像
figure
(1),imshow(I);
X=rgb2gray(I);
%将真彩色图像转换为灰度图像。
[heightwidth]=size(X);
X=im2double(X);
A=imnoise(X,'
gaussian'
0,0.05);
%加高斯噪声
figure
(2),imshow(A);
%利用两组for循环,即可实现计算
sigma1=0;
fori=1:
height
forj=1:
width
sigma1=sigma1+(X(i,j)-A(i,j))^2;
end
end
mse=(sigma1/(height*width))%均方误差
psnr=10*log10((255^2)/mse)%峰值信噪比
信噪比(SNR)sum2=sum2+a(i,j)^2;
SNR=10*log10(sum2/MSE)
计算SNR;
J=imnoise(I,'
%加噪声
a=double(I);
b=double(J);
[M,N]=size(I);
sum=0;
%先计算出MSE
M;
forj=1:
N;
end;
MSE=sum/(M*N)
sum2=0;
%同上,利用两组for循环,即可实现计算
平均绝对误差(MAE)sum=sum+a(i,j)+b(i,j);
MAE=sum/(M*N)
计算MAE;
MAE=sum/(M*N)
处理给定的测试图像,以其原始的形式和加过噪声之后的形式
\Users\DarkSelee\Desktop\aa.jpg'
%读入图像
%显示图像
第二题
直接消除像素点
X=imread('
\Users\DarkSelee\Desktop\bb.jpg'
%读图像
I=rgb2gray(X);
figure
(2);
m=imfilter(I,w,'
subplot(3,2,1);
imshow(I);
title('
原图'
)
subplot(3,2,3);
M=g(1:
%以2:
1的比例缩小M
imshow(I1);
1图'
subplot(3,2,4);
M2=m(1:
%以4:
1的比例缩
imshow(I2);
subplot(3,2,5);
M3=m(1:
%以8:
1的比例缩小
imshow(I3);
subplot(3,2,6);
M4=m(1:
%以16:
imshow(I4);
1图'
)
先滤波再消除像素点
m=[111;
111;
111]/9;
%为领域平均模板,为缩小做处理
g=imfilter(I,w,'
%对原图像进行平滑滤波处理
subplot(3,2,2);
imshow(g);
滤波后的图)
M1=m(1:
%以2:
1的比例缩小
%以4:
%以8:
第三题
pixelrepetition法
1的图像处理
A=imread('
C:
\Users\DarkSelee\Desktop\bb.jpg'
I=rgb2gray(A);
figure
(1);
IM=I(1:
end,1:
subplot(1,3,1);
原图像'
subplot(1,3,2);
imshow(IM);
按2:
1缩小的图像'
J=imresize(I,2,'
%使用pixelrepetition法
subplot(1,3,3);
imshow(J);
按1:
2放大的图像'
%负责运算MSE与PSNR的函数,与第一题代码一致
[M,N]=size(I);
PSNR=10*log10(255^2/MSE)
双线性插值法
%使用双线性插值法
a=double(IM);
两题的4:
1、8:
1、16:
1的图像处理的代码
基本与2:
1的一致,只是将
“1=I(1:
J=imresize(I,2,'
”分别替换为
“IM=(1:
J=imresize(I,4,'
”
“IM=(1:
J=imresize(I,8,'
“1M=I(1:
J=imresize(I,16,'
即可
第四题
Q=2
\Users\DarkSelee\Desktop\dd.jpg'
figure;
J=histeq(I,2);
subplot(2,2,1);
原始图像'
)
subplot(2,2,2);
imhist(I);
title('
原始图像直方图'
subplot(2,2,3);
量化后图像'
subplot(2,2,4);
imhist(J);
量化后图像直方图'
%计算MSE的代码,与第一题一致
sum=sum+(a(i,j)-b(i,j))^2;
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);
“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);
Q=2'
subplot(4,2,2);
imshow(C1);
Q=4'
subplot(4,2,3);
imshow(D1);
Q=8'
subplot(4,2,4);
imshow(E1);
Q=16'
subplot(4,2,5);
imshow(F1);
Q=32'
subplot(4,2,6);
imshow(G1);
Q=64'
subplot(4,2,7);
imshow(H1);
Q=128'
第五题
\Users\DarkSelee\Desktop\cc.png'
%读图像Fig0316(4)(bottom_left)
J=histeq(I);
%用直方图均衡来增强对比度
imshow(I);
imshow(J);
增强对比度后的图像'
imhist(I,64);
原始直方图'
imhist(J,64);
title('
增强对比度后的直方图'