数字图像处理实习作业1讲解.docx
- 文档编号:28177767
- 上传时间:2023-07-09
- 格式:DOCX
- 页数:31
- 大小:709.25KB
数字图像处理实习作业1讲解.docx
《数字图像处理实习作业1讲解.docx》由会员分享,可在线阅读,更多相关《数字图像处理实习作业1讲解.docx(31页珍藏版)》请在冰豆网上搜索。
数字图像处理实习作业1讲解
数字图像处理作业
报告编号:
01
课程编号:
姓名:
赵十璧
起始日期:
2012-11-01
截止日期:
2012-11-07
1、基本原理
本次作业采用的计算机工具为matlab。
均方误差(MSE),是衡量“平均误差”的一种较方便的方法,MSE可以评价数据的变化程度,MSE的值越小,说明预测模型描述实验数据具有更好的精确度。
计算公式为:
sum=sum+(a(i,j)-b(i,j))^2;MSE=sum/(M*N)。
信噪比(SNR),等于信号与噪声的功率谱之比,信噪比越高表明它产生的噪声越少。
计算公式为:
sum=sum+a(i,j)^2;SNR=10*log10(sum2/MSE)。
峰值信噪比(PSNR),反映的是图像信噪比变化情况的统计平均。
通常在经过影像压缩之后,输出的影像通常都会有某种程度与原始影像不一样。
为了衡量经过处理后的影像品质,我们通常会参考PSNR值来认定某个处理程序够不够令人满意。
计算公式为:
PSNR=10*log10(255^2/MSE)。
平均绝对误差(MAE)是指将各次测量的绝对误差取绝对值后所求的平均值,它更加具有代表性。
计算公式为:
sum=sum+a(i,j)+b(i,j);MAE=sum/(M*N)。
对图像进行缩小用到两种方法:
其一直接消除像素进行缩放处理;其二先进行初步的图像平滑滤波,然后消除像素。
平滑滤波用于模糊处理,可以出去细节并降低噪声。
对图像进行放大也用到两种方法:
像素复制法和双线性插值法。
像素复制方法的图像缩放的原理主要是对原来输入图像的整行或是整列像素进行简单的复制与删除,达到改变图像的大小的目的,基于像素复制的方法进行图像缩放是最近邻插值方法的一种,最近邻插值是最简单的插值方法,在这种算法中,每一个插值输出像素的值就是在输入图像中与其最临近的采样点的值。
双线性插值放大算法中,目标图像中新创造的象素值,是由源图像位置在它附近的2*2区域4个邻近象素的值通过加权平均计算得出的。
双线性内插值算法放大后的图像质量较高,不会出现像素值不连续的的情况。
然而次算法具有低通滤波器的性质,使高频分量受损,所以可能会使图像轮廓在一定程度上变得模糊。
灰度图像的量化和直方图均衡化直接调用函数。
量化是指将像素灰度转换成离散的整数值的过程。
量化等级越多,所得图像层次越丰富,灰度分辨率高,图像质量好,但数据量大;量化等级越少,图像层次欠丰富,灰度分辨率低,图像质量差。
直方图均衡化是指将原图像通过某种变换,得到一幅灰度直方图为均匀分布的新图像的方法。
2、操作结果
Task1中,所求的MSE为640.6602,SNR为68.5934,PSNR为20.0645,MAE为248.1302。
Task2中,用直接消除像素点得到的图像如下:
图2-2滤波后的原图
图2-1原始图像
图2-6平滑滤波后缩小4倍
图2-5直接消除像素法缩小4倍
图2-4平滑滤波后缩小2倍
图2-2直接消除像素法缩小2倍
图2-8平滑滤波后缩小8倍
图2-7直接消除像素法缩小8倍
图2-10平滑滤波后缩小16倍
图2-9直接消除像素法缩小16倍
通过图像之间的对比可以发现,不管用哪种方法,当放大的倍数越大时,其清晰度就越低。
另外,虽然原始大小图像、2倍比例及16倍比例缩小下两种缩小方法得到的图像对比并不明显,但是通过4倍和8倍缩小比例下图像的对比可以发现,经过平滑滤波处理后的图像在缩小后比原始图像缩小后得到的图像更为清晰。
Task3中,分别采用了像素重复和双线性插值两种方法放大在上一个任务中缩小的图像,并分别计算原图像与放大后的图像的均方误差(MSE)和峰值信噪比(PSNR),然后根据图像的缩小比例分别绘出MSE和PSNR的变化图像。
变化图像如下:
图3-1MSE—图片缩小比例折线图
图3-2PSNR—图片缩小比例折线图
由图可以看出,在1:
2的缩放比例下,滤波处理缩小后用像素重复法放大得到的MSE最小且PSNR最大,其他比例下滤波处理缩小后用双线性插值法放大得到的MSE最小且PSNR最大。
图4-1原图像及其灰度分布直方图
图4-2量化步长为2的图像及其灰度分布直方图
图4-3量化步长为4的图像及其灰度分布直方图
Task4中,得到的图像及其灰度分布直方图如下:
图4-4量化步长为8的图像及其灰度分布直方图
图4-5量化步长为16的图像及其灰度分布直方图
图4-6量化步长为32的图像及其灰度分布直方图
图4-7量化步长为64的图像及其灰度分布直方图
图4-8量化步长为128的图像及其灰度分布直方图
由图可以看出,当量化步长越大时,图像显得越细腻,其灰度分布直方图越密集。
图4-9MSE在不同量化步长下的值
由图4-9可以看出,当量化步长越大时,MSE越小,及说明图像描述的精确度越高。
图5-2Fig0316
(1)(top_left)均衡化后的图像及其灰度分布直方图
图5-3Fig0316(4)(bottom_left)原图像及其灰度分布直方图
Task5中,得到的各图像如下:
图5-2Fig0316(4)(bottom_left)均衡化后的图像及其灰度分布直方图
我们可以发现,均衡化之后图像的对比度更加明显,兵器其灰度分布直方图分布区域更加均匀。
3、附源代码
Task1
>>f=imread('lena_gray_512.tif');
>>g=imnoise(f,'gaussian');
>>a=double(f);
>>b=double(g);
>>[M,N]=size(f);
>>sum=0;
>>fori=1:
M;
forj=1:
N;
sum=sum+(a(i,j)-b(i,j))*(a(i,j)-b(i,j));
end;
end;
>>MSE=sum/(M*N)
MSE=
640.6602
>>sum1=0;
>>fori=1:
M;
forj=1:
N;
sum1=sum1+a(i,j)*a(i,j);
end;
end;
>>SNR=10*log10(sum1/MSE)
SNR=
68.5934
>>PSNR=10*log10(255^2/MSE)
PSNR=
20.0645
>>sum=0;
>>fori=1:
M;
forj=1:
N;
sum=sum+a(i,j)+b(i,j);
end;
end;
>>MAE=sum/(M*N)
MAE=
248.1302
Task2
>>f=imread('livingroom.tif');
>>imshow(f);
>>f1=f(1:
2:
end,1:
2:
end);
>>imshow(f1);
>>f2=f(1:
4:
end,1:
4:
end);
>>imshow(f2);
>>f3=f(1:
8:
end,1;8:
end);
end;
Undefinedfunction'b'forinputargumentsoftype'double'.
>>b=double(g);
>>[M,N]=size(f);
>>sum=0;
>>fori=1:
M;
forj=1:
N;
sum=sum+(a(i,j)-b(i,j))*(a(i,j)-b(i,j));
end;
end;
>>MSE=sum/(M*N)
MSE=
9.6389e+03
>>g=histeq(f,4);
>>imshow(f);
>>figure;
>>f=imread('lena_frag.tif');
>>g=histeq(f,2);
>>figure;
>>subplot(2,2,1);
>>imshow(f);
>>subplot(2,2,2);
>>imhist(f);
>>subplot(2,2,3);
>>imshow(g);
>>subplot(2,2,4);
>>imhist(g);
>>
>>g=histeq(f,4);
>>figure;
>>subplot(2,2,1);
>>imshow(f);
>>subplot(2,2,2);
>>imhist(f);
>>
>>f=imread('lena_frag.tif');
>>subplot(1,2,1);
>>imshow(f);
>>subplot(1,2,2);
>>imhist(f);
>>g1=histeq(f,2);
>>figure;
>>subplot(1,2,1);
>>imshow(g1);
>>subplot(1,2,2);
>>imhist(g1);
>>g2=histeq(f,4);
>>figure;
>>imshow(g2);
>>subplot(1,2,2);
>>subplot(1,2,1);
>>imshow(g1);
>>imshow(g2);
>>subplot(1,2,2);
>>imhist(g2);
>>g3=histeq(f,8);
>>subplot(1,2,1);
>>imshow(g3);
>>subplot(1,2,2);
>>imhist(g3);
>>g4=histeq(f,16);
>>figure;
>>subplot(1,2,1);
>>imshow(g4);
>>subplot(1,2,2);
>>imhist(g4);
>>g5=histeq(f,32);
>>figure;
>>subplot(1,2,1);
>>imshow(g5);
>>subplot(1,2,2);
>>imhist(g5);
>>g6=histeq(f,64);
>>figure;
>>subplot(1,2,1);
>>imshow(g6);
>>subplot(1,2,2);
>>imhist(g6);
>>g7=histeq(f,128);
>>figure;
>>subplot(1,2,1);
>>imshow(g7);
>>subplot(1,2,2);
>>imhist(g7);
>>[M,N]=size(f);
>>a=double(f);
>>b1=double(g1);
>>b1=double(g1);
>>b1=double(g1);
>>b2=double(g2);
>>b3=double(g3);
>>b4=double(g4);
>>b5=double(g5);
>>b6=double(g6);
>>b7=double(g7);
>>fori=1:
M;
forj=1:
N;
end;
end;
>>sum1=0;
>>sum2=0;
>>sum3=0
sum3=
0
>>sum3=0;
>>sum4=0;
>>sum5=0;
>>sum6=0;
>>sum7=0;
>>fori=1:
M;
forj=1:
N;
sum1=sum1+(a(i,j)-b1(i,j))*(a(i,j)-b1(i,j));
sum2=sum2+(a(i,j)-b2(i,j))*(a(i,j)-b2(i,j));
sum3=sum3+(a(i,j)-b3(i,j))*(a(i,j)-b3(i,j));
sum4=sum4+(a(i,j)-b4(i,j))*(a(i,j)-b4(i,j));
sum5=sum5+(a(i,j)-b5(i,j))*(a(i,j)-b5(i,j));
sum6=sum6+(a(i,j)-b6(i,j))*(a(i,j)-b6(i,j));
sum7=sum7+(a(i,j)-b7(i,j))*(a(i,j)-b7(i,j));
end;
end;
>>MSE1=sum1/(M*N)
MSE1=
9.6389e+03
>>MSE2=sum2/(M*N)
MSE2=
3.5931e+03
>>MSE3=sum3/(M*N)
MSE3=
2.4078e+03
>>MSE4=sum4/(M*N)
MSE4=
2.0164e+03
>>MSE5=sum5/(M*N)
MSE5=
1.8854e+03
>>MSE6=sum6/(M*N)
MSE6=
1.8229e+03
>>MSE7=sum7/(M*N)
MSE7=
1.8002e+03
>>clear
>>f1=imread('Fig0316
(1)(top_left).tif');
>>g=im2double(f1);
>>subplot(2,2,1);
>>imshow(g);
>>subplot(2,2,2);
>>imhist(g);
>>g1=histeq(g);
>>subplot(2,2,3);
>>imshow(g1);
>>subplot(2,2,4);
>>imhist(g1);
>>f2=imread('')
>>f2=imread('Fig0316(4)(bottom_left)');
Errorusingimread(line369)
File"Fig0316(4)(bottom_left)"doesnotexist.
>>f2=imread('Fig0316(4)(bottom_left)');
Errorusingimread(line369)
File"Fig0316(4)(bottom_left)"doesnotexist.
>>f2=imread('Fig0316(4)(bottom_left).tif');
>>figure;
>>h=im2double(f2);
>>subplot(2,2,1);
>>imshow(h);
>>subplot(2,2,2);
>>subplot(2,2,1);
>>imshow(h);
>>subplot(2,2,1);
>>subplot(2,2,2);
>>imhist(h);
>>subplot(2,2,3);
>>h1=histeq(h);
>>subplot(2,2,3);
>>imshow(h1);
>>subplot(2,2,4);
>>imhist(h1);
>>clear
>>f=imread('livingroom.tif');
>>f1=f(1:
2:
end,1:
2:
end);
>>f2=f(1:
4:
end,1:
4:
end);
>>f3=f(1:
8:
end,1:
8:
end);
>>f4=f(1:
16:
end,1:
16:
end);
>>w=[111;111;111]/9;
>>g=imfilter(f,w,'replicate');
>>g1=g(1:
2:
end,1:
2:
end);
>>g2=g(1:
4:
end,1:
4:
end);
>>g3=g(1:
8:
end,1:
8:
end);
>>g4=g(1:
16:
end,1:
16:
end);
>>h1=imresize(g1,2);
>>h2=imresize(g2,2);
>>h2=imresize(g2,4);
>>h3=imresize(g3,8);
>>h4=imresize(g4,16);
>>k1=imresize(f1,2,'bilinear');
>>k2=imresize(f2,4,'bilinear');
>>k3=imresize(f3,8,'bilinear');
>>k4=imresize(f4,16,'bilinear');
>>k1=imresize(f1,2);
>>k2=imresize(f2,4);
>>k3=imresize(f3,8);
>>k4=imresize(f4,16);
>>m1=imresize(f1,2,'bilinear');
>>m2=imresize(f2,4,'bilinear');
>>m3=imresize(f3,8,'bilinear');
>>m4=imresize(f4,16,'bilinear');
>>n1=imresize(g1,2,'bilinear');
>>n2=imresize(g2,4,'bilinear');
>>n3=imresize(g3,8,'bilinear');
>>n4=imresize(g4,16,'bilinear');
>>a=double(f);
>>[M,N]=size(f);
>>b1=double(h1);
>>b2=double(k1);
>>b3=double(m1);
>>b4=double(n1);
>>sum1=0;
>>sum2=0;
>>sum3=0;
>>sum4=0;
>>fori=1:
M;
forj=1:
N;
sum1=sum1+(a(i,j)-b1(i,j))*(a(i,j)-b1(i,j));
sum2=sum2+(a(i,j)-b2(i,j))*(a(i,j)-b2(i,j));
sum3=sum3+(a(i,j)-b3(i,j))*(a(i,j)-b3(i,j));
sum4=sum4+(a(i,j)-b4(i,j))*(a(i,j)-b4(i,j));
end;
end;
>>MSE1=sum1/(M*N)
MSE1=
123.4420
>>MSE2=sum2/(M*N)
MSE2=
138.0037
>>MSE3=sum3/(M*N)
MSE3=
132.1592
>>MSE4=sum4/(M*N)
MSE4=
137.4242
>>PSNR1=10*log10(255^2/MSE1)
PSNR1=
27.2162
>>PSNR2=10*log10(255^2/MSE2)
PSNR2=
26.7319
>>PSNR3=10*log10(255^2/MSE3)
PSNR3=
26.9198
>>PSNR4=10*log10(255^2/MSE4)
PSNR4=
26.7502
>>
>>
>>b5=double(h2);
>>b6=double(k2);
>>b7=double(m1);
>>b7=double(m2);
>>b8=double(n2);
>>b9=double(h3);
>>b10=double(k3);
>>b11=double(m3);
>>b12=double(n3);
>>b13=double(h4);
>>b14=double(k4);
>>b15=double(m4);
>>b16=double(n4);
>>sum5=0;
>>sum6=0;
>>sum7=0;
>>sum8=0;
>>sum9=0;
>>sum10=0;
>>sum11=0;
>>sum12=0;
>>sum13=0;
>>sum14=0;
>>sum15=0;
>>sum16=0;
>>fori=1:
M;
forj=1:
N;
sum5=sum5+(a(i,j)-b5(i,j))*(a(i,j)-b5(i,j));
sum6=sum6+(a(i,j)-b6(i,j))*(a(i,j)-b6(i,j));
sum7=sum7+(a(i,j)-b7(i,j))*(a(i,j)-b7(i,j));
sum8=sum8+(a(i,j)-b8(i,j))*(a(i,j)-b8(i,j));
sum9=sum9+(a(i,j)-b9(i,j))*(a(i,j)-b9(i,j));
sum10=sum10+(a(i,j)-b10(i,j))*(a(i,j)-b10(i,j));
sum11=sum11+(a(i,j)-b11(i,j))*(a(i,j)-b11(i,j));
sum12=sum12+(a(i,j)-b12(i,j))*(a(i,j)-b12(i,j));
sum13=sum13+(a(i,j)-b13(i,j))*(a(i,j)-b13(i,j));
sum14=sum14+(a(i,j)-b14(i,j))*(a(i,j)-b14(i,j));
sum15=sum15+(a(i,j)-b15(i,j))*(a(i,j)-b15(i,j));
sum16=sum16+(a(i,j)-b16(i,j))*(a(i,j)-b16(i,j));
end;
end;
>>MSE5=sum5/(M*N)
MSE5=
332.4135
>>MSE6=sum6/(M*N)
MSE6=
424.9083
>>MSE7=sum7/(M*N)
MSE7=
387.9766
>>MSE8=sum8/(M*N)
MSE8=
324.0842
>>MSE9=sum9/(M*N)
MSE9=
661.7173
>>MSE10=sum10/(M*N)
MSE10=
770.8898
>>MSE11=sum11/(M*N)
MSE11=
694.3029
>>MSE12=sum12/(M*N)
MSE12=
618.3956
>>MSE13=sum13/(M*N)
MSE13=
1.0948e+03
>>MSE14=sum14/(M*N)
MSE14=
1.2116e+03
>>MSE15=sum15/(M*N)
MSE15=
1.0934e+03
>>MSE16=sum16/(M*N)
MSE16=
1.0098e+03
>>PSNR5=10*log10(255^2/MSE5)
PSNR5=
22.9140
>>PSNR6=10*log10(255^2/MSE6)
PSNR6=
21.8479
>>PSNR7=10*log10(255^2/MSE7)
PSNR7=
22.2427
>>PSNR8=10*log10(255^2/MSE8)
PSNR8=
23.0242
>>PSNR9=10*log10(255^2/MSE9)
PSNR9=
19.9241
>>PSNR10=10*log10(255^2/MSE10)
PSNR10=
19.2609
>>PSNR11=10*log10(255^2/MSE11)
PSNR11=
19.7153
>>PSNR12=10*log10(255^2/MSE
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数字图像 处理 实习 作业 讲解