数字图像处理作业。
报告编号: 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倍比例及16倍比例缩小下两种缩小方法得到的图像对比并不明显,但是通过4倍和8倍缩小比例下图像的对比可以发现,经过平滑滤波处理后的图像在缩小后比原始图像缩小后得到的图像更为清晰。
task3中,分别采用了像素重复和双线性插值两种方法放大在上一个任务中缩小的图像,并分别计算原图像与放大后的图像的均方误差(mse)和峰值信噪比(psnr),然后根据图像的缩小比例分别绘出mse和psnr的变化图像。变化图像如下:
由图可以看出,在1:2的缩放比例下,滤波处理缩小后用像素重复法放大得到的mse最小且psnr最大,其他比例下滤波处理缩小后用双线性插值法放大得到的mse最小且psnr最大。
task4中,得到的图像及其灰度分布直方图如下:
由图可以看出,当量化步长越大时,图像显得越细腻,其灰度分布直方图越密集。
图4-9 mse在不同量化步长下的值。
由图4-9可以看出,当量化步长越大时,mse越小,及说明图像描述的精确度越高。
task5中,得到的各图像如下:
我们可以发现,均衡化之后图像的对比度更加明显,兵器其灰度分布直方图分布区域更加均匀。
3、附源**。
task1> f=imread('lena_gray_')
> g=imnoise(f,'gaussian');
> a=double(f);
> b=double(g);
> [m,n]=size(f);
> sum=0;
> for i=1:m;
for j=1:n;
sum=sum+(a(i,j)-b(i,j))*a(i,j)-b(i,j));
end;end;
> mse=sum/(m*n)mse =
> sum1=0;
> for i=1:m;
for j=1:n;
sum1=sum1+a(i,j)*a(i,j);
end;end;
> snr=10*log10(sum1/mse)snr =
> psnr=10*log10(255^2/mse)
psnr =
> sum=0;
> for i=1:m;
for j=1:n;
sum=sum+a(i,j)+b(i,j);
end;end;
> mae=sum/(m*n)mae =
task2> f=imread(''
> 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);
> imshow(f3);
> f4=f(1:16:end,1:16:end);
> imshow(f4);
> w=[1 1 1;1 1 1;1 1 1]/9;
> g=imfilter(f,w,'replicate');
> imshow(g);
> w=ones(31);
> g=imfilter(f,w,'replicate');
> imshow(g);
> w=[1 1 1;1 1 1;1 1 1]/9;
> g=imfilter(f,w,'replicate');
> imshow(g);
> g1=g(1:2:end,1:2:end);
> imshow(g1);
> g2=g(1:4:end,1:4:end);
> imshow(g2);
> g3=g(1:8:end,1:8:end);
> imshow(g3);
> g4=g(1:16:end,1:16:end);
> imshow(g4);
task3> f=imread('lena_')
> figure;
> g=histeq(1,2);
> imhist(f);
> clear;
> f=imread('lena_')
> 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);
> a=double(f);
> g=double(g);
> [m,n]=size(f);
> sum=0;
> for i=1:m;
for j=1:n;
sum=sum+(a(i,j)-b(i,j))*a(i,j)-b(i,j));
end;
数字图像处理实习作业1讲解
数字图像处理作业。报告编号 01 课程编号 姓名 赵十璧 起始日期 2012 11 01 截止日期 2012 11 07 1 基本原理。本次作业采用的计算机工具为matlab。均方误差 mse 是衡量 平均误差 的一种较方便的方法,mse可以评价数据的变化程度,mse的值越小,说明 模型描述实验数据...
数字图像处理作业
2017暑假小学期。专业。班级。姓名。学号。摘要 数字图像处理的目的是改善 质量,利用matlab设计几个简单的图像处理程序。该程序具备图像处理的日常功能 图像代数与几何运算 直方图与图像明暗关系分析 直方图均衡化 滤波器的使用与图像分割技术。通过运行 解释结合图像效果,分别介绍了处理原理与过程。关...
数字图像处理作业
图1是一张因拍摄时晃动而产生模糊的图像,试估计其psf并恢复图像。题中已明确此图是由于运动导致的模糊,所以采取课件上标准的恢复方法。首先,对 进行laplace滤波,是为了凸显图像中的高频部分,而后对图像进行radon变换以求出运动模糊的角度,由于角度标准和方向问题,需要将求出的角度减去90 也即。...