数字图像处理实习作业1
数字图像处理实验报告

数字图像处理实验报告实验一数字图像处理编程基础一、实验目的1. 了解MATLAB图像处理工具箱;2. 掌握MATLAB的基本应用方法;3. 掌握MATLAB图像存储/图像数据类型/图像类型;4. 掌握图像文件的读/写/信息查询;5. 掌握图像显示--显示多幅图像、4种图像类型的显示方法;6. 编程实现图像类型间的转换。
二、实验内容1. 实现对图像文件的读/写/信息查询,图像显示--显示多幅图像、4种图像类型的显示方法、图像类型间的转换。
2. 运行图像处理程序,并保存处理结果图像。
三、源代码I=imread('cameraman.tif')imshow(I);subplot(221),title('图像1');imwrite('cameraman.tif')M=imread('pout.tif')imview(M)subplot(222),imshow(M);title('图像2');imread('pout.bmp')N=imread('eight.tif')imview(N)subplot(223),imshow(N);title('图像3');V=imread('circuit.tif')imview(V)subplot(224),imshow(V);title('图像4');N=imread('C:\Users\Administrator\Desktop\1.jpg')imshow(N);I=rgb2gary(GRB)[X.map]=gary2ind(N,2)RGB=ind2 rgb(X,map)[X.map]=gary2ind(I,2)I=ind2 gary(X,map)I=imread('C:\Users\dell\Desktop\111.jpg');subplot(231),imshow(I);title('原图');M=rgb2gray(I);subplot(232),imshow(M);[X,map]=gray2ind(M,100);subplot(233),imshow(X);RGB=ind2rgb(X,map);subplot(234),imshow(X);[X,map]=rbg2ind(I);subplot(235),imshow(X);四、实验效果实验二 图像几何变换实验一、实验目的1.学习几种常见的图像几何变换,并通过实验体会几何变换的效果;2.掌握图像平移、剪切、缩放、旋转、镜像等几何变换的算法原理及编程实现;3.掌握matlab 编程环境中基本的图像处理函数。
数字图像处理实习报告

数字图像处理实习报告在当今数字化的时代,数字图像处理技术在众多领域中发挥着至关重要的作用,从医疗诊断到卫星遥感,从娱乐产业到工业检测,其应用无处不在。
通过这次数字图像处理实习,我对这一领域有了更深入的了解和实践经验。
实习的初始阶段,我主要进行了相关理论知识的学习。
数字图像处理涵盖了众多概念,如图像的数字化表示、像素、灰度值、分辨率等。
了解这些基础知识是后续处理图像的基石。
同时,我还学习了常见的图像格式,如 JPEG、PNG、BMP 等,以及它们的特点和适用场景。
在掌握了一定的理论基础后,我开始接触图像处理的基本操作。
图像增强是我最先实践的部分,通过调整图像的对比度和亮度,能够使原本模糊不清或暗淡的图像变得更加清晰和易于观察。
例如,对于一张曝光不足的照片,增加亮度可以让隐藏在黑暗中的细节显现出来;而提高对比度则可以使图像中的不同区域更加分明,突出重点。
图像滤波是另一个重要的环节。
均值滤波可以有效地去除图像中的噪声,但在一定程度上会使图像变得模糊;中值滤波则能够在去除噪声的同时较好地保留图像的边缘细节。
我通过对不同类型和程度的噪声图像进行滤波处理,直观地感受到了它们的效果差异。
图像的几何变换也是实习中的关键内容。
图像的平移、旋转和缩放操作看似简单,但其背后涉及到复杂的数学计算。
在实际操作中,需要准确地计算变换矩阵,以确保图像在变换后的准确性和完整性。
实习过程中,我还深入研究了图像分割技术。
这是将图像分成不同区域或对象的过程,以便进行后续的分析和处理。
阈值分割是一种常见且简单的方法,通过设定一个阈值,将图像中的像素分为两类。
然而,对于复杂的图像,这种方法往往效果不佳,这时就需要更高级的分割算法,如基于边缘检测的分割或基于区域生长的分割。
在进行数字图像处理的过程中,我也遇到了一些挑战和问题。
例如,在处理大规模图像数据时,计算资源的限制可能导致处理速度缓慢;在选择图像处理算法时,需要根据具体的图像特点和需求进行权衡,否则可能无法达到理想的效果。
matlab 数字图像处理实验报告(五份)

《数字图像处理实验报告》实验一图像的增强一.实验目的1.熟悉图像在MATLAB下的读写、输出;2.熟悉直方图;3.熟悉图像的线性指数等;4.熟悉图像的算术运算和几何变换。
二.实验仪器计算机、MATLAB软件三.实验原理图像增强是指根据特定的需要突出图像中的重要信息,同时减弱或去除不需要的信息。
从不同的途径获取的图像,通过进行适当的增强处理,可以将原本模糊不清甚至根本无法分辨的原始图像处理成清晰的富含大量有用信息的可使用图像。
其基本原理是:对一幅图像的灰度直方图,经过一定的变换之后,使其成为均匀或基本均匀的,即使得分布在每一个灰度等级上的像素个数.f=H等或基本相等。
此方法是典刑的图像空间域技术处理,但是由于灰度直方图只是近似的概率密度函数,因此,当用离散的灰度等级做变换时,很难得到完全平坦均匀的结果。
频率域增强技术频率域增强是首先将图像从空间与变换到频域,然后进行各种各样的处理,再将所得到的结果进行反变换,从而达到图像处理的目的。
常用的变换方法有傅里叶变换、DCT变换、沃尔什-哈达玛变换、小波变换等。
假定原图像为f(x,y),经傅立叶变换为F(u,v)。
频率域增强就是选择合适的滤波器H(u,v)对F(u,v)的频谱成分进行处理,然后经逆傅立叶变换得到增强的图像。
四.实验内容及步骤1.图像在MATLAB下的读写、输出;实验过程:>> I = imread('F:\image\624baf9dbcc4910a.jpg');figure;imshow(I);title('Original Image');text(size(I,2),size(I,1)+15, ...'IMG_20170929_130307.jpg', ...'FontSize',7,'HorizontalAlignment','right');Warning: Image is too big to fit on screen; displaying at 25% > In imuitools\private\initSize at 86In imshow at 196Original Image2.给定函数的累积直方图。
(完整word版)数字图像处理 实验报告(完整版)

数字图像处理实验一 MATLAB数字图像处理初步一、显示图像1.利用imread( )函数读取一幅图像,假设其名为lily.tif,存入一个数组中;2.利用whos 命令提取该读入图像flower.tif的基本信息;3.利用imshow()函数来显示这幅图像;实验结果如下图:源代码:>>I=imread('lily.tif')>> whos I>> imshow(I)二、压缩图像4.利用imfinfo函数来获取图像文件的压缩,颜色等等其他的详细信息;5.利用imwrite()函数来压缩这幅图象,将其保存为一幅压缩了像素的jpg文件,设为lily.jpg;语法:imwrite(原图像,新图像,‘quality’,q), q取0-100。
6.同样利用imwrite()函数将最初读入的tif图象另存为一幅bmp图像,设为flily.bmp。
7.用imread()读入图像Sunset.jpg和Winter.jpg;8.用imfinfo()获取图像Sunset.jpg和Winter.jpg的大小;9.用figure,imshow()分别将Sunset.jpg和Winter.jpg显示出来,观察两幅图像的质量。
其中9的实验结果如下图:源代码:4~6(接上面两个) >>I=imread('lily.tif')>> imfinfo 'lily.tif';>> imwrite(I,'lily.jpg','quality',20);>> imwrite(I,'lily.bmp');7~9 >>I=imread('Sunset.jpg');>>J=imread('Winter.jpg')>>imfinfo 'Sunset.jpg'>> imfinfo 'Winter.jpg'>>figure(1),imshow('Sunset.jpg')>>figure(2),imshow('Winter.jpg')三、二值化图像10.用im2bw将一幅灰度图像转化为二值图像,并且用imshow显示出来观察图像的特征。
数字图像处理与分析实验作业

数字图像处理与分析实验作业作业说明:作业题目分为基本题和综合应用题。
基本题主要是考察大家对教材涉及的一些基本图像处理技术的理解和实现。
而综合应用题主要是考察大家综合利用图像处理的若干技术来解决实际问题的能力。
注:所有实验用图像均可从网上下载,文档中的图片只是示例。
作业要求:编程工具:Matlab或者VC(可以使用OpenCV:/)。
因为很多基本的图象处理算法已经集成在很多的编程工具中,而编程训练中基本题的目的是让同学们加深对这些算法的理解,所以基本题要求同学们只能使用图像读取和显示相关的函数(例如Matlab的imread imshow,imwrite,OpenCV的cvCreateImage,cvLoadImage,cvShowImage),而不要直接调用相关的API(例如二维DFT,图象均衡等等),但在综合应用题中则无此限制。
上交的作业包括:实验报告和程序。
其中实验报告要求写出算法分析(必要时请附上流程图),函数说明(给出主要函数的接口和参数说明),实验结果(附图)及讨论分析。
提交的程序,一定要确保可以运行,最好能写个程序说明。
基本题一共有10道,可以从中任选2道题来完成。
综合应用题有2道,可以从中任选1道来完成。
请各位同学务必独立完成,切忌抄袭!基本题一、直方图变换要求对原始Lena 图像实现以下三种取整函数的直方图均衡化:线性函数: t k= int[(L -1) t k+ 0.5];对数函数: t k= int[( L-1)log(1+9t k) + 0.5] ;指数函数: t k= int[(L -1)exp( t k-1) + 0.5] ;要求给出:1、原始图像和分别采用上述三种方式均衡化后的图像;2、原始图像的直方图和上述三种方式对应均衡化后的直方图。
二、模板运算2.1 加权平均按照教材图3.3.2 所示的模板对含噪声的Lena_noise 图像进行平滑滤波。
要求给出:1、原始图像和平滑后图像;2、计算平滑后的均方根误差(e rms)和峰值信噪比(PSNR )。
数字图像处理实验报告

目录实验一:数字图像的基本处理操作 (4):实验目的 (4):实验任务和要求 (4):实验步骤和结果 (5):结果分析 (8)实验二:图像的灰度变换和直方图变换 (9):实验目的 (9):实验任务和要求 (9):实验步骤和结果 (9):结果分析 (13)实验三:图像的平滑处理 (14):实验目的 (14):实验任务和要求 (14):实验步骤和结果 (14):结果分析 (18)实验四:图像的锐化处理 (19):实验目的 (19):实验任务和要求 (19):实验步骤和结果 (19):结果分析 (21)实验一:数字图像的基本处理操作:实验目的1、熟悉并掌握MATLAB、PHOTOSHOP等工具的使用;2、实现图像的读取、显示、代数运算和简单变换。
3、熟悉及掌握图像的傅里叶变换原理及性质,实现图像的傅里叶变换。
:实验任务和要求1.读入一幅RGB图像,变换为灰度图像和二值图像,并在同一个窗口内分成三个子窗口来分别显示RGB图像和灰度图像,注上文字标题。
2.对两幅不同图像执行加、减、乘、除操作,在同一个窗口内分成五个子窗口来分别显示,注上文字标题。
3.对一幅图像进行平移,显示原始图像与处理后图像,分别对其进行傅里叶变换,显示变换后结果,分析原图的傅里叶谱与平移后傅里叶频谱的对应关系。
4.对一幅图像进行旋转,显示原始图像与处理后图像,分别对其进行傅里叶变换,显示变换后结果,分析原图的傅里叶谱与旋转后傅里叶频谱的对应关系。
:实验步骤和结果1.对实验任务1的实现代码如下:a=imread('d:\');i=rgb2gray(a);I=im2bw(a,;subplot(1,3,1);imshow(a);title('原图像');subplot(1,3,2);imshow(i);title('灰度图像');subplot(1,3,3);imshow(I);title('二值图像');subplot(1,3,1);imshow(a);title('原图像');结果如图所示:图原图及其灰度图像,二值图像2.对实验任务2的实现代码如下:a=imread('d:\');A=imresize(a,[800 800]);b=imread('d:\');B=imresize(b,[800 800]);Z1=imadd(A,B);Z2=imsubtract(A,B);Z3=immultiply(A,B);Z4=imdivide(A,B);subplot(3,2,1);imshow(A);title('原图像 A'); subplot(3,2,2);imshow(B);title('原图像 B'); subplot(3,2,3);imshow(Z1);title('加法图像'); subplot(3,2,4);imshow(Z2);title('减法图像'); subplot(3,2,5);imshow(Z3);title('乘法图像'); subplot(3,2,6);imshow(Z2);title('除法图像');结果如图所示:3.对实验任务3的实现代码如下:s=imread('d:\');i=rgb2gray(s);i=double(i);j=fft2(i);k=fftshift(j); %直流分量移到频谱中心I=log(abs(k)); %对数变换m=fftshift(j); %直流分量移到频谱中心RR=real(m); %取傅里叶变换的实部II=imag(m); %取傅里叶变换的虚部A=sqrt(RR.^2+II.^2);A=(A-min(min(A)))/(max(max(A)))*255;b=circshift(s,[800 450]);b=rgb2gray(b);b=double(b);c=fft2(b);e=fftshift(c);I=log(abs(e));f=fftshift(c);WW=real(f);ZZ=imag(f);B=sqrt(WW.^2+ZZ.^2);B=(B-min(min(B)))/(max(max(B)))*255;subplot(2,2,1);imshow(s);title('原图像');subplot(2,2,2);imshow(uint8(b));title('平移图像');subplot(2,2,3);imshow(A);title('离散傅里叶变换频谱');subplot(2,2,4);imshow(B);title('平移图像离散傅里叶变换频谱');结果如图所示:4.对实验任务4的实现代码如下:s=imread('d:\');i=rgb2gray(s);i=double(i);j=fft2(i);k=fftshift(j);I=log(abs(k));m=fftshift(j);RR=real(m);II=imag(m);A=sqrt(RR.^2+II.^2);A=(A-min(min(A)))/(max(max(A)))*255;b=imrotate(s,-90);b=rgb2gray(b);b=double(b);c=fft2(b);e=fftshift(c);I=log(abs(e));f=fftshift(c);WW=real(f);ZZ=imag(f);B=sqrt(WW.^2+ZZ.^2);B=(B-min(min(B)))/(max(max(B)))*255;subplot(2,2,1);imshow(s);title('原图像');subplot(2,2,2);imshow(uint8(b));title('平移图像');subplot(2,2,3);imshow(A);title('离散傅里叶频谱');subplot(2,2,4);imshow(B);title('平移图像离散傅里叶频谱');结果如图所示::结果分析对MATLAB软件的操作开始时不太熟悉,许多语法和函数都不会使用,写出程序后,调试运行,最开始无法显示图像,检查原因,是有些标点符号没有在英文状态下输入和一些其他的细节,学会了imread(),imshow(),rgb2gray()等函数。
数字图像处理实验一图像的基本操作和基本统计指标计算实验报告.doc

实验一图像的基本操作和基本统计指标计算一、实验目的熟悉MATLAB图像处理工具箱,在掌握MATLAB基本操作的基础上,本课程主要依靠图像处理工具箱验证和设计图像处理算法。
对于初学者来说,勤学多练、熟悉MATLAB图像处理工具箱也是学号本课程的必经之路。
了解计算图像的统计指标的方法及其在图像处理中的意义。
了解图像的几何操作,如改变图像大小、剪切、旋转等。
二、实验主要仪器设备(1)台式计算机或笔记本电脑(2)MATLAB(安装了图像处理工具箱,即Image Processing Toolbox(IPT))(3)典型的灰度、彩色图像文件三、实验原理(1)将一幅图像视为一个二维矩阵。
(2)利用MATLAB图像处理工具箱读、写和显示图像文件。
①调用imread函数将图像文件读入图像数组(矩阵)。
例如“I=imread(‘tire.tif’);”。
其基本格式为:“A=imread(‘filename.fmt’)”,其中,A为二维矩阵,filename.为文件名,fmt 为图像文件格式的扩展名。
②调用imwrite函数将图像矩阵写入图像文件。
例如“imwrite(A,’test_image.jpg’);”。
其基本格式为“imwrite(a,filename.fmt)”。
③调用imshow函数显示图像。
例如“imshow(‘tire.tif’);”。
其基本格式为:I为图像矩阵,N为显示的灰度级数,默认时为256。
(3)计算图像有关的统计参数。
四、实验内容(1)利用MATLAB图像处理工具箱和Photoshop读、写和显示图像文件。
(2)利用MATLAB计算图像有关的统计参数。
五、实验步骤(1)利用“读图像文件I/O”函数读入图像Italy.jpg。
(2)利用“读图像文件I/O”的iminfo函数了解图像文件的基本信息:主要包括Filename(文件名)、FileModDate(文件修改时间)、Filesize(文件尺寸)、Format(文件格式)、FormatVersion (格式版本)、Width(图像宽度)、Height(图像高度)、BitDepth(每个像素的位深度)、ColorType (彩色类型)、CodingMethod(编码方法)等。
《数字图像处理》上机实验报告1

数字图像处理上机实验报告实验名称:图像的几何变换(象素空间关系)学期:2014/2015上学期班级:电子信息工程1102姓名:陈玮学号:3110209424实验时间:2014.09.29实验一:图像的几何变换(象素空间关系)1 目的①了解MATLAB的基本功能,掌握采用MA TLAB进行图像处理的方法;②了解图像象素空间关系;③掌握基本坐标变换,包括平移,缩放,旋转等;④了解形态变换,掌握特殊的形态变换,包括相似变换,刚体变换,等距变换等2 器材装有MATLAB的PC机一台3 原理双线性内差值法:1.数学原理已知的红色数据点与待插值得到的绿色点假如我们想得到未知函数f在点P= (x,y) 的值,假设我们已知函数f在Q11 = (x1,y1)、Q12 = (x1,y2),Q21 = (x2,y1) 以及Q22 = (x2,y2) 四个点的值。
首先在x方向进行线性插值,得到R1和R2,然后在y方向进行线性插值,得到P.这样就得到所要的结果f(x,y).其中红色点Q11,Q12,Q21,Q22为已知的4个像素点.第一步:X方向的线性插值,插入蓝色第二步:做完X方向的插值后再做Y方向的点R1和R2. 插值,由R1与R2计算P点.x方向上Y方向上插入绿色点P.线性插值的结果与插值的顺序无关。
首先进行y方向的插值,然后进行x方向的插值,所得到的结果是一样的。
但双线性插值插值方法这种方法并不是线性的,首先进行y方向的插值,然后进行x 方向的插值,与首先进行x方向的插值,然后进行y方向的插值,所得到的R1与R2是不一样的。
如果选择一个坐标系统使得的四个已知点坐标分别为(0, 0)、(0, 1)、(1, 0) 和(1, 1),那么插值公式就可以化简为f(x,y)=f(0,0)(1-x)(1-y)+f(0,1)(1-x)y+f(1,1)xy+f(1,0)x(1-y)在x与y方向上,z值成单调性特性的应用中,此种方法可以做外插运算,即可以求解Q1~Q4所构成的正方形以外的点的值。
数字图像处理实习报告

实现图像加噪。实现对“原始图像”添加指定类型噪声。有两项可供选择:椒盐噪声,高斯噪声。这两项均放在一个“button group”——“加噪声”中,每次点击都只有一项“radio Button”起作用,分别对原始图像添加不同类型噪声后将其显示到“处理后图像”中。
实现图像的灰度变换。图像的灰度变换分为两类:基于点操作的“图像反转”、“对数反转”和“幂次反转”。基于全局灰度值的“直方图统计”和“直方图均衡化”。这5项均放在一个“button group”——“灰度变换”中,每次点击都只有一项“radio Button”起作用,分别对“原始图像”进行处理后显示到“处理后图像”中,其中如果原始图像进行了加噪声处理,则灰度变换则是对加噪声后图像进行的。
实现图像的边缘检测。包括“Robert算子”、“Sobel算子”、“Prewitt算子”、“Log算子”、“Canny算子”这5个选择。这5项均放在一个“button group”——“边缘检测”中,每次点击都只有一项“radio Button”起作用,分别对“原始图像”进行处理后显示到“处理后图像”中,其中如果原始图像进行了加噪声处理,则边缘检测则是对加噪声后图像进行的
imwrite(ITER,FileFullName,'jpg');
else
msgbox('保存取消','保存失败');
中科大数字图像处理作业1

数字图像处理(中国科学技术大学)HOMEWORK#1编号:59SA16173027李南云[在此处键入文档的摘要。
摘要通常是对文档内容的简短总结。
在此处键入文档的摘要。
摘要通常是对文档内容的简短总结。
]SA16173027 李南云P1:a: The size of lena.tiff is 512x512 ;The size of mandril.tiff is 256x256.b: The values of pixels lena(29, 86) is 105;The values of pixels mandril(198, 201) is 158. c:d:P1代码如下:clear all;f = imread('C:\Users\Administrator\Desktop\images\lena.tiff'); figure(1);imshow(f);i = imread('C:\Users\Administrator\Desktop\images\mandril.tiff'); figure(2);imshow(i);s1 = size(f);s2 = size(i);v1 = f(30,87);v2 = i(199,202);p1 = f(103,:);p2 = i(:,69);figure(3);subplot(211);plot(p1);figure(3);subplot(212);plot(p2);n = 128;for j=1:nb(x,j)=i(x,j);f(x,j)=b(x,j);endendfigure(4);imshow(f);P2代码如下:clear all;a = imread('C:\Users\Administrator\Desktop\images\campusdrive.tif'); figure(1);subplot(231);imshow(a);a1 = double(a);b = floor(a1/8);b = b*8;b = uint8(b);subplot(232);imshow(b);c = floor(a1/16);c = c*16;c = uint8(c);subplot(233);imshow(c);d = floor(a1/32);d = d*32;d = uint8(d);subplot(234);e = floor(a1/64);e = e*64;e = uint8(e);subplot(235);imshow(e);f = floor(a1/168);f = f*168;f = uint8(f);subplot(236);imshow(f);4bit时已经出现伪轮廓,5bit基本可以保存图像质量。
数字图像处理大作业

数字图像处理大作业学号:姓名:班级:数字图像处理作业用自己拍摄的图像,完成以下作业:1,用Matlab语言完成如下实验:1)打开一个BMP文件2)将其局部区域的灰度值进行改变3)另存为一个新的BMP文件2,Matlab编程实现图像傅立叶高通、低通滤波,给出算法原理及实验结果。
3,找一幅曝光不足的灰度(或彩色)图像,用Matlab按照直方图均衡化的方法进行处理。
4,用Matlab打开一幅图像,添加椒盐、高斯噪声,然后使用邻域平均法、中值滤波法进行平滑。
5,用Matlab打开一幅图像,利用Roberts梯度法、Sobel算子和拉普拉斯算子进行锐化,并比较结果。
以上作业,严禁抄袭。
作业请注明学号,姓名,班级,电话号码。
将纸质版于2012-06-06晚7:00交至B529房间。
1,用Matlab语言完成如下实验:1)打开一个BMP文件2)将其局部区域的灰度值进行改变3)另存为一个新的BMP文件%文件名为way01.bmp 源程序如下:clear all;f=imread('way.bmp');f1=rgb2gray(f); %ת»»Îª»Ò¶Èͼfigure(1);imshow(f1);imwrite(f1,'way01.bmp');f1(100:150,100:120)=256; %¾Ö²¿¸Ä±ä»Ò¶ÈÖµfigure(2);imshow(f1);运行结果为:注:源文件名为way.jpg2,Matlab编程实现图像傅立叶高通、低通滤波,给出算法原理及实验结果。
1)傅里叶高通滤波:源程序为:clear all;I=imread('way01.bmp');figure(1);imshow(I);I=double(I);f=fft2(I);g=fftshift(f);[M,N]=size(g);n1=floor(M/2);n2=floor(N/2);d0=5;for i=1:Mfor j=1:Nd=sqrt((i-n1)^2+(j-n2)^2);if d>=d0h1=1;elseh1=0;endg1(i,j)=(h1+0.5)*g(i,j);endendg2=ifftshift(g1);g3=uint8(real(ifft2(g2))); figure(2);imshow(g3);title('¸ßͨÂ˲¨½á运行结果为:2)傅里叶低通滤波:源程序为:clear all;I=imread('way01.bmp');figure(1);imshow(I);I=double(I);f=fft2(I); g=fftshift(f); [M,N]=size(g);n1=floor(M/2);n2=floor(N/2);d0=30;for i=1:Mfor j=1:Nd=sqrt((i-n1)^2+(j-n2)^2);if d<=d0h1=1;elseh1=0;endg1(i,j)=(h1+0)*g(i,j);endendg2=ifftshift(g1);g3=uint8(real(ifft2(g2))); figure(2);imshow(g3);title('µÍͨÂ˲¨½á¹û')运行结果为:3,找一幅曝光不足的灰度(或彩色)图像,用Matlab按照直方图均衡化的方法进行处理。
数字图像处理上机作业一.

数字图像处理上机作业一1.设计一个程序,绘制出一幅灰度图象的直方图。
Solution:代码及代码的说明:%作用:返回灰度矩阵a,并画出直方图function a=zhifangtu(x) % x为要分析的图像名加单引号I=imread(x);b=size(I);a=zeros(1,256); % a为一个1*256的矩阵分别记录灰度为0到255的像%的个数for m=1:b(1) %两个for语句将整张图的所有像素都扫描一遍for n=1:b(2)a(I(m,n)+1)= a(I(m,n)+1)+1; %将灰度为I(m,n)的像素个数存储在%a(I(m,n)+1)中,因为matlab里没有%a(0)endendn=0:255;bar(n,a);%画出直方图s=sum(a) %查看直方图的总的面积等于这张图的总像素值实验结果及分析:在命令窗口中输入zhifangtu('Lenna.bmp')返回s =262144,以及灰度矩阵a,同时有如下直方图输出:分析及结论:在命令窗口中用size命令可查知Lenna.bmp是512*512的,返回的s =262144恰等于512*512,说明所编的直方图的程序恰将所有的像素点都统计了,直方图的总面积等于像素总数。
直方图的作用也就是将一张图中不同灰度值对应像素数的一个统计。
在这个程序的编写中应注意a(I(m,n)+1)= a(I(m,n)+1)+1 不能写成a(I(m,n))= a(I(m,n))+1 ,应为在matlab中矩阵表示没有a(0),若某个像素点的灰度值是0,就会出错,故应写成a(I(m,n)+1)= a(I(m,n)+1)+1形式。
2.对同一场景但模糊程度不一样的三张数字图像绘制出其直方图, 计算每一幅图象所有像素灰度的方差。
图象的清晰度同灰度方差什么关系?Solution:代码及代码的说明:%作用:绘出模糊程度不一样的三张数字图像的直方图,并输出各自灰度方差I1=imread('tu1.bmp');I1=rgb2gray(I1); %转换为灰度图像imwrite(I1,'tu0.bmp'); %由于直方图只能对灰度图作用,故先将其转为灰度图subplot(2,2,1);zhifangtu('tu0.bmp');title('tu1直方图'); %绘出tu1.bmp的直方图k1=size(I1);I1=single(I1);I1=(I1-mean(mean(I1)')).^2; %个像素灰度值减去平均灰%值后再平方t1=sum(sum(I1)')/k1(1)/k1(2), %输出tu1.bmp的所有像素灰度的方差subplot(2,2,2);zhifangtu('tu2.bmp');title('tu2直方图'); %绘出tu2.bmp的直方图I2=imread('tu2.bmp');k2=size(I2);I2=single(I2);I2=(I2-mean(mean(I2)')).^2; %个像素灰度值减去平均灰度值后再%平方t2=sum(sum(I2)')/k2(1)/k2(2), %输出tu2.bmp的所有像素灰度的方差subplot(2,2,3);zhifangtu('tu3.bmp');title('tu3直方图'); %绘出tu3.bmp的直方图I3=imread('tu3.bmp');k3=size(I3);I3=single(I3);I3=(I3-mean(mean(I3)')).^2; %个像素灰度值减去平均灰度值%后再平方t3=sum(sum(I3)')/k3(1)/k3(2), %输出tu3.bmp的所有像素灰度的方差figure;subplot(2,2,1);imshow('tu1.bmp');title('tu1图'); %绘出tu1.bmp的图subplot(2,2,2);imshow('tu2.bmp');title('tu2图'); %绘出tu1.bmp的图subplot(2,2,3);imshow('tu3.bmp');title('tu3图'); %绘出tu1.bmp的图实验结果及分析:上述代码执行后,输出t1 = 7.3027e+003,t2= 6.5808e+003,t3=5.4860e+003;同时输出如下直方图:原始图:分析及结论:tu1,tu2,tu3三幅图是依次变模糊的,三张图的所有像素灰度方差依次为t1 = t1 = 7.3027e+003,t2= 6.5808e+003,t3=5.4860e+003,它们是依次变小的,可知图象的清晰度随灰度方差的变小而变得模糊。
数字图像处理技术作业实验

2也可以针对自己感兴趣的图像自定题目。
3可参考教材1.4节:数字图像处理的应用和发展中所列举的图像处理的例子。
要求:字数>1500;参考文献>3篇
实验三:图像的点运算
1图像的分段线性点运算
2图像的非线性点运算:对数变换和幂次变换
实验四:图像的几何运算-图像平移、镜像、旋转
作业二:编写程序,找出两幅图像中不同的地方,并在不同处用方框标出
内容包括:
1 XX图像识别的意义
2 XX图像识别系统组成及图像的处理过程
3 XX图像识别的优点和局限性或缺点
4 图像识别的应用
题目选择:
1可以使用下列选题,
指纹识别、面部识别、虹膜识别、声音识别、手形识别、签名识别、击键识别、牙齿识别、步态识别、红外温谱图、人耳识别、视网膜识别、掌纹识别、多生物特征识别融合、味纹图像识别、基因识别等。
周次
1
2
3
4
班名10210E0110210E02
实验一:熟悉MATLAB软件开发环境
选择一个自己喜欢的彩色数字图像,或者是自己的彩色电子照片,编写简单的程序对图像进行处理,并且熟悉下列函数:
1图像文件的读写imread,imwrite
2彩色图像转换为灰度图像rgb2gray
3彩色图像转换为黑白图像im2bw
4图像显示imshow imtool
5多幅图像显示subplot
实验二:图像的代数运算-差影法
1编写程序,制作两个彩色块图。
背景色块:大小相同,底色相同或不同;每个色块图中包含一个目标色块;位置不同,大小相同或不同
2两图做减法
数字图像处理第一次实验报告材料

实验报告课程名称数字图像处理实验项目MATLAB图像处理编程基础指导教师学院 _专业电子信息工程班级/学号学生实验日期______2012- _成绩______________________实验1 MATLAB图像处理编程基础一、实验目的1.了解MATLAB产品体系和了解MATLAB图像处理工具箱。
2.掌握MATLAB的基本应用方法。
3.掌握MATLAB图像存储/图像数据类型/图像类型。
4.掌握图像文件的读/写/信息查询。
5.掌握图像显示--显示多幅图像、4种图像类型的显示方法、特殊图像的显示技术6.编程实现图像类型间的转换和图像算术操作。
二、实验的硬件、软件平台硬件:计算机软件:操作系统:Windows XP应用软件:MATLAB 7.9.0 (R2009b)三、实验容及步骤(参考MATLAB 图像处理工具箱的帮助完成相应功能)1.了解MATLAB产品体系和MATLAB图像处理工具箱,查看MATLAB及图像处理工具箱说明。
2.查看图像处理工具箱图像处理工具箱路径:C:\Program Files\MATLAB\R2009b\toolbox\images◆图像处理工具箱中的函数路径:C:\ProgramFiles\MATLAB\R2009b\toolbox\images\images查看该目录下的文件Contents.m◆图像处理工具箱的演示程序和示例图像路径:C:\ProgramFiles\MATLAB\R2009b\toolbox\images\imdemos运行演示程序、查看该目录下MATLAB自带的示例图像3.掌握图像处理工具箱图像存储/图像数据/图像类型。
MATLAB 帮助位置:Image Processing Toolbox-User Guide- Introduction-Image Types in the Toolbox4.掌握MATLAB功能实现的两种方法:◆在Command Window中,以命令行单句调用某一函数,例如两幅图像相加,观察Workspace中图像矩阵属性、值。
数字图像处理实习1—Matlab图像处理初步

实验1——Matlab图像处理初步
实验目的:熟悉Matlab语言关于图像处理的基本操作
实验内容:练习imread、imshow、iminfo、imwrite、subplot、for等命令以及矩阵计算有关命令。
实验要求:
1、读取并显示cameraman.tif图像(提示:imread)。
2、将图像中间的1/3部分(如图)分别作如下处理,其余部分不变
a) 每个像素点的值都乘以2,即f(x,y)=2*f(x,y),显示处理前后的图像(提
示:imshow),同一个图像窗口左右显示(提示:subplot),左边显示原
始图像,右边显示处理后图像,处理后图像保存为cameraman1.bmp(提
示:imwrite)
b) 每个像素点取反色,即f(x,y)=255-f(x,y);显示处理前后的图像,同一个
图像窗口上下显示(提示:subplot),上边显示原始图像,下边显示处理
后图像,处理后图像保存为cameraman2.bmp(提示:imwrite)
3、撰写实验报告并附上所用程序和结果。
f=imread('cameraman.tif');
[m n]=size(f);
g=f;
r=round(m/3);
c=round(n/3);
for i=r:2*r
for j=c:2*c
g(i,j)=2*f(i,j);
end
end
subplot(2,1,1),imshow(f);
subplot(2,1,2),imshow(g);
imwrite(g,'cameraman1.bmp','bmp');
2013-12-16。
数字图像处理实验报告

数字图像处理实验报告数字图像处理实验报告实验⼀数字图像基本操作及灰度调整⼀、实验⽬的1)掌握读、写图像的基本⽅法。
2)掌握MATLAB语⾔中图像数据与信息的读取⽅法。
3)理解图像灰度变换处理在图像增强的作⽤。
4)掌握绘制灰度直⽅图的⽅法,理解灰度直⽅图的灰度变换及均衡化的⽅法。
⼆、实验内容与要求1.熟悉MATLAB语⾔中对图像数据读取,显⽰等基本函数特别需要熟悉下列命令:熟悉imread()函数、imwrite()函数、size()函数、Subplot()函数、Figure()函数。
1)将MATLAB⽬录下work⽂件夹中的forest.tif图像⽂件读出.⽤到imread,imfinfo等⽂件,观察⼀下图像数据,了解⼀下数字图像在MATLAB中的处理就是处理⼀个矩阵。
将这个图像显⽰出来(⽤imshow)。
尝试修改map颜⾊矩阵的值,再将图像显⽰出来,观察图像颜⾊的变化。
2)将MATLAB⽬录下work⽂件夹中的b747.jpg图像⽂件读出,⽤rgb2gray()将其转化为灰度图像,记为变量B。
2.图像灰度变换处理在图像增强的作⽤读⼊不同情况的图像,请⾃⼰编程和调⽤Matlab函数⽤常⽤灰度变换函数对输⼊图像进⾏灰度变换,⽐较相应的处理效果。
3.绘制图像灰度直⽅图的⽅法,对图像进⾏均衡化处理请⾃⼰编程和调⽤Matlab函数完成如下实验。
1)显⽰B的图像及灰度直⽅图,可以发现其灰度值集中在⼀段区域,⽤imadjust函数将它的灰度值调整到[0,1]之间,并观察调整后的图像与原图像的差别,调整后的灰度直⽅图与原灰度直⽅图的区别。
2) 对B 进⾏直⽅图均衡化处理,试⽐较与源图的异同。
3) 对B 进⾏如图所⽰的分段线形变换处理,试⽐较与直⽅图均衡化处理的异同。
图1.1 分段线性变换函数三、实验原理与算法分析1. 灰度变换灰度变换是图像增强的⼀种重要⼿段,它常⽤于改变图象的灰度范围及分布,是图象数字化及图象显⽰的重要⼯具。
数字图像处理实验(全完整答案)

实验一常用MATLAB图像处理命令一、实验目的1、熟悉并掌握MA TLAB工具的使用;2、实现图像的读取、显示、代数运算和简单变换。
二、实验环境MATLAB 6.5以上版本、WIN XP或WIN2000计算机三、常用函数●读写图像文件1 imreadimread函数用于读入各种图像文件,如:a=imread('e:\w01.tif')2 imwriteimwrite函数用于写入图像文件,如:imwrite(a,'e:\w02.tif',’tif’)3 imfinfoimfinfo函数用于读取图像文件的有关信息,如:imfinfo('e:\w01.tif') ●图像的显示1imageimage函数是MATLAB提供的最原始的图像显示函数,如:a=[1,2,3,4;4,5,6,7;8,9,10,11,12];image(a);2 imshowimshow函数用于图像文件的显示,如:i=imread('e:\w01.tif');imshow(i);title(‘原图像’)%加上图像标题3 colorbarcolorbar函数用显示图像的颜色条,如:i=imread('e:\w01.tif');imshow(i);colorbar;4 figurefigure函数用于设定图像显示窗口,如:figure(1); /figure(2);5 subplot把图形窗口分成多个矩形部分,每个部分可以分别用来进行显示。
Subplot(m,n,p)分成m*n个小窗口,在第p个窗口中创建坐标轴为当前坐标轴,用于显示图形。
6 plot绘制二维图形plot(y)Plot(x,y)xy可以是向量、矩阵。
图像类型转换1 rgb2gray把真彩图像转换为灰度图像i=rgb2gray(j)2 im2bw通过阈值化方法把图像转换为二值图像I=im2bw(j,level)Level表示灰度阈值,取值范围0~1(即0.n),表示阈值取自原图像灰度范围的n%3 imresize改变图像的大小I=imresize(j,[m n])将图像j大小调整为m行n列图像运算1 imadd两幅图像相加,要求同样大小,同种数据类型Z=imadd(x,y)表示图像x+y2 imsubstract两幅图像相减,要求同样大小,同种数据类型Z=imsubtract(x,y)表示图像x-y3 immultiplyZ=immultiply(x,y)表示图像x*y4 imdivideZ=imdivide(x,y)表示图像x/y四、实验内容(请将实验程序填写在下方合适的位置,实验图像结果拷屏粘贴)1、读入一幅RGB图像,变换为灰度图像和二值图像,并在同一个窗口内分成三个子窗口来分别显示RGB图像和灰度图像,注上文字标题。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数字图像处理作业报告编号:01课程编号:姓名:赵十璧起始日期:2012-11-01 截止日期:2012-11-07一、基本原理本次作业采用的计算机工具为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个邻近象素的值通过加权平均计算得出的。
双线性内插值算法放大后的图像质量较高,不会出现像素值不连续的的情况。
然而次算法具有低通滤波器的性质,使高频分量受损,所以可能会使图像轮廓在一定程度上变得模糊。
灰度图像的量化和直方图均衡化直接调用函数。
量化是指将像素灰度转换成离散的整数值的过程。
量化等级越多,所得图像层次越丰富,灰度分辨率高,图像质量好,但数据量大;量化等级越少,图像层次欠丰富,灰度分辨率低,图像质量差。
直方图均衡化是指将原图像通过某种变换,得到一幅灰度直方图为均匀分布的新图像的方法。
二、操作结果Task1中,所求的MSE为640.6602,SNR 为68.5934,PSNR 为20.0645,MAE为248.1302。
Task2中,用直接消除像素点得到的图像如下:图2-1 原始图像图2-2 滤波后的原图图2-2 直接消除像素法缩小2倍图2-4 平滑滤波后缩小2倍图2-5 直接消除像素法缩小4倍图2-6 平滑滤波后缩小4倍图2-7 直接消除像素法缩小8倍图2-8 平滑滤波后缩小8倍图2-9 直接消除像素法缩小16倍图2-10 平滑滤波后缩小16倍通过图像之间的对比可以发现,不管用哪种方法,当放大的倍数越大时,其清晰度就越低。
另外,虽然原始大小图像、2倍比例及16倍比例缩小下两种缩小方法得到的图像对比并不明显,但是通过4倍和8倍缩小比例下图像的对比可以发现,经过平滑滤波处理后的图像在缩小后比原始图像缩小后得到的图像更为清晰。
Task3中,分别采用了像素重复和双线性插值两种方法放大在上一个任务中缩小的图像,并分别计算原图像与放大后的图像的均方误差(MSE)和峰值信噪比(PSNR),然后根据图像的缩小比例分别绘出MSE和PSNR的变化图像。
变化图像如下:图3-1 MSE—图片缩小比例折线图图3-2 PSNR—图片缩小比例折线图由图可以看出,在1:2的缩放比例下,滤波处理缩小后用像素重复法放大得到的MSE最小且PSNR最大,其他比例下滤波处理缩小后用双线性插值法放大得到的MSE最小且PSNR最大。
Task4中,得到的图像及其灰度分布直方图如下:图4-1 原图像及其灰度分布直方图图4-2 量化步长为2的图像及其灰度分布直方图图4-4 量化步长为8的图像及其灰度分布直方图图4-5 量化步长为16的图像及其灰度分布直方图图4-6 量化步长为32的图像及其灰度分布直方图图4-7 量化步长为64的图像及其灰度分布直方图图4-8 量化步长为128的图像及其灰度分布直方图由图可以看出,当量化步长越大时,图像显得越细腻,其灰度分布直方图越密集。
图4-9 MSE在不同量化步长下的值由图4-9可以看出,当量化步长越大时,MSE越小,及说明图像描述的精确度越高。
Task5中,得到的各图像如下:图5-1 Fig0316(1)(top_left)原图像及其灰度分布直方图图5-2 Fig0316(1)(top_left)均衡化后的图像及其灰度分布直方图图5-2 Fig0316(4)(bottom_left)均衡化后的图像及其灰度分布直方图我们可以发现,均衡化之后图像的对比度更加明显,兵器其灰度分布直方图分布区域更加均匀。
三、附源代码Task1>> f=imread('lena_gray_512.tif');>> 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 =640.6602>> 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 =68.5934>> PSNR=10*log10(255^2/MSE) PSNR =20.0645>> 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 =248.1302Task2>> 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);>> 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_frag.tif');>> figure;>> g=histeq(1,2);>> imhist(f);>> clear;>> 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);>> 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;end;Undefined function 'b' for input arguments of type 'double'.>> 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 =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);>> for i=1:M;for j=1:N;end;end;>> sum1=0;>> sum2=0;>> sum3=0sum3 =>> sum3=0;>> sum4=0;>> sum5=0;>> sum6=0;>> sum7=0;>> for i=1:M;for j=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)'); Error using imread (line 369)File "Fig0316(4)(bottom_left)" does not exist.>> f2=imread('Fig0316(4)(bottom_left)'); Error using imread (line 369)File "Fig0316(4)(bottom_left)" does not exist.>> 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=[1 1 1;1 1 1;1 1 1]/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;>> for i=1:M;for j=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;>> for i=1:M;for j=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)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/MSE12) PSNR12 =20.2181>> PSNR13=10*log10(255^2/MSE13) PSNR13 =17.7376>> PSNR14=10*log10(255^2/MSE14) PSNR14 =17.2972>> PSNR15=10*log10(255^2/MSE15) PSNR15 =>> PSNR16=10*log10(255^2/MSE16) PSNR16 =18.0883Task4>> 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);>>figure;>> 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);>> sum1=0;>> sum2=0;>> sum3=0;>> sum4=0;>> sum5=0;>> sum6=0;>> sum7=0;>> for i=1:M;for j=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+03Task5>> 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('Fig0316(4)(bottom_left).tif'); >> figure;>> h=im2double(f2);>> subplot(2,2,1);>> imshow(h);>> subplot(2,2,2);>> imhist(h);>> h1=histeq(h);>> subplot(2,2,3);>> imshow(h1);>> subplot(2,2,4);>> imhist(h1);。