数字图像处理实习作业1讲解.docx

上传人:b****7 文档编号:15926019 上传时间:2023-07-09 格式:DOCX 页数:31 大小:709.25KB
下载 相关 举报
数字图像处理实习作业1讲解.docx_第1页
第1页 / 共31页
数字图像处理实习作业1讲解.docx_第2页
第2页 / 共31页
数字图像处理实习作业1讲解.docx_第3页
第3页 / 共31页
数字图像处理实习作业1讲解.docx_第4页
第4页 / 共31页
数字图像处理实习作业1讲解.docx_第5页
第5页 / 共31页
数字图像处理实习作业1讲解.docx_第6页
第6页 / 共31页
数字图像处理实习作业1讲解.docx_第7页
第7页 / 共31页
数字图像处理实习作业1讲解.docx_第8页
第8页 / 共31页
数字图像处理实习作业1讲解.docx_第9页
第9页 / 共31页
数字图像处理实习作业1讲解.docx_第10页
第10页 / 共31页
数字图像处理实习作业1讲解.docx_第11页
第11页 / 共31页
数字图像处理实习作业1讲解.docx_第12页
第12页 / 共31页
数字图像处理实习作业1讲解.docx_第13页
第13页 / 共31页
数字图像处理实习作业1讲解.docx_第14页
第14页 / 共31页
数字图像处理实习作业1讲解.docx_第15页
第15页 / 共31页
数字图像处理实习作业1讲解.docx_第16页
第16页 / 共31页
数字图像处理实习作业1讲解.docx_第17页
第17页 / 共31页
数字图像处理实习作业1讲解.docx_第18页
第18页 / 共31页
数字图像处理实习作业1讲解.docx_第19页
第19页 / 共31页
数字图像处理实习作业1讲解.docx_第20页
第20页 / 共31页
亲,该文档总共31页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

数字图像处理实习作业1讲解.docx

《数字图像处理实习作业1讲解.docx》由会员分享,可在线阅读,更多相关《数字图像处理实习作业1讲解.docx(31页珍藏版)》请在冰点文库上搜索。

数字图像处理实习作业1讲解.docx

数字图像处理实习作业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

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 人文社科 > 视频讲堂

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2