数字图像处理实验报告
数字图像处理实验报告

数字图像处理实验报告数字图像处理实验报告(一)实验目的1.理解数字图像处理的基本概念与原理。
2.掌握数字图像处理的基本方法。
3.掌握常用数字滤波器的性质和使用方法。
4.熟练应用数字图像处理软件进行图像处理。
实验器材计算机、MATLAB软件实验内容1.图像的读写与显示首先,我们需要在MATLAB中读入一幅图像,并进行显示。
% 导入图像文件I = imread('myimage.jpg');% 显示图像imshow(I);2.图像的分辨率与色彩空间转换数字图像处理中的一个重要概念是图像的分辨率,通常用像素数量表示。
图像的分辨率越高,代表着图像包含更多的像素,从而更具细节和清晰度。
在数字图像处理中,常常需要将一幅图像从一种色彩空间转换为另一种色彩空间。
RGB色彩空间是最常见的图像色彩空间之一,并且常常作为其他色彩空间的基础。
% 转换图像色彩空间J = rgb2gray(I);% 显示转换后的图像imshow(J);3.图像的增强与滤波图像的增强通常指的是对图像的对比度、亮度和清晰度等方面进行调整,以改善图像的质量和可读性。
数字图像处理中的滤波是一种常用的图像增强方法。
滤波器是一个能够对图像进行局部操作的矩阵,它能够提取或抑制特定的图像特征。
% 对图像进行平滑滤波K = imgaussfilt(J, 1);% 显示滤波后的图像imshow(K);4.数字图像处理在实际应用中的例子数字图像处理在很多实际应用中被广泛应用。
这些应用包括医疗成像、计算机视觉、人脸识别、安防监控等。
下面是数字图像处理在人脸识别应用中的一个简单例子。
% 导入图像文件I = imread('face.jpg');% 进行人脸检测faceDetector = vision.CascadeObjectDetector;bbox = step(faceDetector, I);% 在图像上标记人脸位置IFaces = insertObjectAnnotation(I, 'rectangle', bbox, 'Face');imshow(IFaces);实验结论通过本次实验,我已经能够理解数字图像处理的基本概念与原理,掌握数字图像处理的基本方法,熟练应用数字图像处理软件进行图像处理。
数字图像处理实验报告(图像灰度变换处理)

数字图像处理实验报告班级:姓名:学号:数字图像处理实验报告一.实验名称:图像灰度变换二.实验目的:1 学会使用Matlab;2 学会用Matlab软件对图像灰度进行变换,感受各种不同的灰度变换方法对最终图像效果的影响。
三.实验原理:Matlab中经常使用的一些图像处理函数:读取图像:img=imread('filename'); //支持TIFF,JPEG,GIF,BMP,PNG,XWD等文件格式。
显示图像:imshow(img,G); //G表示显示该图像的灰度级数,如省略则默认为256。
保存图片:imwrite(img,'filename'); //不支持GIF格式,其他与imread相同。
亮度变换:imadjust(img,[low_in,high_in],[low_out,high_out]); //将low_in至high_in之间的值映射到low_out至high_out之间,low_in 以下及high_in以上归零。
绘制直方图:imhist(img);直方图均衡化:histeq(img,newlevel); //newlevel表示输出图像指定的灰度级数。
像平滑与锐化(空间滤波):w=fspecial('type',parameters);imfilter(img,w); //这两个函数结合将变得十分强大,可以实现photoshop里的任意滤镜。
图像复原:deconvlucy(img,PSF); //可用于图像降噪、去模糊等处理。
四.实验步骤:1.获取实验用图像:Fig3.10(b).jpg. 使用imread函数将图像读入Matlab。
2.产生灰度变换函数T1,使得:0.3r r < 0.35s = 0.105+2.6333(r–0.35) 0.35 ≤ r ≤ 0.65 1+0.3(r–1) r > 0.65用T1对原图像Fig3.10(b).jpg进行处理,打印处理后的新图像。
数字图像处理实验报告(全部)

实验1直方图一.实验目的1.熟悉matlab图像处理工具箱及直方图函数的使用;2.理解和掌握直方图原理和方法;二.实验设备:1.PC机一台;2.软件matlab。
三.程序设计在matlab环境中,程序首先读取图像,然后调用直方图函数,设置相关参数,再输出处理后的图像。
I=imread('cameraman.tif');%读取图像subplot(1,2,1),imshow(I) %输出图像title('原始图像') %在原始图像中加标题subplot(1,2,2),imhist(I) %输出原图直方图title('原始图像直方图') %在原图直方图上加标题四.实验步骤1. 启动matlab双击桌面matlab图标启动matlab环境;2. 在matlab命令窗口中输入相应程序。
书写程序时,首先读取图像,一般调用matlab自带的图像,如:cameraman图像;再调用相应的直方图函数,设置参数;最后输出处理后的图像;3.浏览源程序并理解含义;4.运行,观察显示结果;5.结束运行,退出;五.实验结果:观察图像matlab环境下的直方图分布。
(a)原始图像 (b)原始图像直方图六.实验报告要求1、给出实验原理过程及实现代码:I=imread('coins.png');%读取图像subplot(1,2,1),imshow(I) %输出图像title('原始图像') %在原始图像中加标题subplot(1,2,2),imhist(I) %输出原图直方图title('原始图像直方图') %在原图直方图上加标题2、输入一幅灰度图像,给出其灰度直方图结果,并进行灰度直方图分布原理分析。
实验2 均值滤波一.实验目的1.熟悉matlab图像处理工具箱及均值滤波函数的使用;2.理解和掌握3*3均值滤波的方法和应用;二.实验设备:1.PC机一台;2.软件matlab三.程序设计在matlab环境中,程序首先读取图像,然后调用图像增强(均值滤波)函数,设置相关参数,再输出处理后的图像。
数字图像处理实验实验报告 实验二

数字图像处理实验实验报告(实验一)一、实验目的:1、直方图显示2、计算并绘制图像直方图3、直方图均衡化二.程序脚本clear all;RGB=imread('me.jpg');figure;imshow(RGB);title('图1 彩色图');%========================================================== I=rgb2gray(RGB);figure;imshow(I);title('图2 灰度图');%========================================================= figure;imhist(I);title('灰度直方图');%========================================================= hi=imhist(I);j=1;%为使画出的直方图更好看,在此进行了抽样for(i=1:256)if(mod(i,10)==1)h(j)=hi(i);j=j+1;endendn=0:10:255;figure;stem(n,h);axis([0 255 0 2500]);title('图3.1 stem显示直方图');figure;bar(n,h);axis([0 255 0 2500]);title('图3.2 bar显示直方图');figure;plot(n,h);axis([0 255 0 2500]);title('图3.3 plot显示直方图');%========================================================= I=rgb2gray(RGB);figure;subplot(3,2,1);imshow(I);title('图4.1 原始灰度图');subplot(3,2,2);imhist(I);title('图4.2 原始灰度直方图');%=============================J1=imadjust(I);subplot(3,2,3);imshow(J1);title('调整对比度以后的图');subplot(3,2,4);imhist(J1);title('调整对比度以后的灰度直方图');%=================================J2=histeq(I);subplot(3,2,5);imshow(J2);title('均衡化以后的的图');subplot(3,2,6);imhist(J2);title('均衡化以后的灰度直方图');三.实验结果图1 彩色图图2 灰度图010002000灰度直方图10020010020005001000150020002500图3.1 stem 显示直方图10020005001000150020002500图3.2 bar 显示直方图10020005001000150020002500图3.3 plot 显示直方图图4.1 原始灰度图10002000图4.2 原始灰度直方图0100200调整对比度以后的图010002000调整对比度以后的灰度直方图0100200均衡化以后的的图02000均衡化以后的灰度直方图100200。
数字图像处理实验报告

数字图像处理实验报告班级:学号:姓名:实验一DTF变换与余弦变换一、实验内容:用Matlab对某幅图像进行图像的离散付里叶变换、离散余弦变换二、实验目的:1. 掌握傅立叶变换2. 理解频域变换的通用公式3. 掌握离散余弦变换三、实验原理:f=imread(C:\);F=fft2(f);F=fft2(f,P,Q);S=abs(F);Fc=fftshift(F);S2=log(1+abs(Fc));F=ifftshift(Fc);F=ifft2(F);F=real(ifft2(F));dct2f()/idct2()imshow四、源程序:%傅里叶变换clear all;clc;x=imread('C:\Users\K\Desktop\matlab experiment\windows.jpg');y=imread('C:\Users\K\Desktop\matlab experiment\windows1.jpg');subplot(3,2,1);imshow(x);title('x 原图');subplot(3,2,2);imshow(y);title('y 原图');% 傅里叶变换qf=fft2(double(x));lf=fft2(double(y));%取幅度和相位qf1=abs(qf);qf2=angle(qf);lf1=abs(lf);lf2=angle(lf);%进行重建qfr=qf1.*cos(qf2)+qf1.*sin(qf2).*i;lfr=lf1.*cos(lf2)+lf1.*sin(lf2).*i;xr=uint8(abs(ifft2(qfr)));yr=uint8(abs(ifft2(lfr)));subplot(3,2,3);imshow(xr,[]);title('x幅谱与相谱重建'); subplot(3,2,4);imshow(yr,[]);title('y幅谱与相谱重建'); qfrm=qf1.*cos(lf2)+qf1.*sin(lf2).*i;lfrm=lf1.*cos(qf2)+lf1.*sin(qf2).*i;xr1=uint8(abs(ifft2(qfrm)));yr1=uint8(abs(ifft2(lfrm)));subplot(3,2,5);imshow(xr1,[]);title('x幅谱与y相谱重建'); subplot(3,2,6);imshow(yr1,[]);title('y幅谱与x相谱重建');%余弦变换x1=rgb2gray(x);y1=rgb2gray(y);figure(2);subplot(3,2,1);imshow(x1);title('x 原图');subplot(3,2,2);imshow(y1);title('y 原图');dctxchange=dct2(x1);dctychange=dct2(y1);subplot(3,2,3);imshow(log(abs(dctxchange)),[]);title('x图余弦变换幅频');subplot(3,2,4);imshow(log(abs(dctychange)),[]);title('y图余弦变换幅频');subplot(3,2,5);imshow(log(angle(dctxchange)),[]);title('x图余弦变换相频');subplot(3,2,6);imshow(log(angle(dctychange)),[]);title('y图余弦变换相频');%重建dctxchange1=abs(dctxchange);dctxchange2=angle(dctxchange);dctychange1=abs(dctychange);dctychange2=angle(dctychange);figure(2)dctxchanger=dctxchange1.*cos(dctxchange2)+dctxchange1.*sin(dctxch ange2).*i;dctychanger=dctychange1.*cos(dctychange2)+dctychange1.*sin(dctych ange2).*i;dctxchanger=uint8(abs(idct2(dctxchanger)));dctychanger=uint8(abs(idct2(dctychanger)));subplot(221);imshow(dctxchanger,[]);title('x幅谱与相谱重建');subplot(222);imshow(dctychanger,[]);title('y幅谱与相谱重建');dctxchanger=dctxchange1.*cos(dctychange2)+dctxchange1.*sin(dctych ange2).*i;dctychanger=dctychange1.*cos(dctxchange2)+dctychange1.*sin(dctxchange2).*i;dctxchanger1=uint8(abs(idct2(dctxchanger)));dctychanger1=uint8(abs(idct2(dctychanger)));subplot(223);imshow(dctxchanger1,[]);title('x幅谱与y相谱重建');subplot(224);imshow(dctychanger1,[]);title('y幅谱与x相谱重建');五、实验结果:实验二图像点操作一、实验内容:用Matlab对某幅图像进行反变换、对数变换、指数变换、分段线性变换二、实验目的:理解并掌握图像点运算处理三、实验原理:为了突出感兴趣的目标或灰度区间 相对抑制那些不感兴趣的目标或灰度区间常采用分段线性变换法。
数字图像处理图像变换实验报告

实验报告实验名称:图像处理姓名:刘强班级:电信1102学号:1404110128实验一图像变换实验——图像点运算、几何变换及正交变换一、实验条件PC机数字图像处理实验教学软件大量样图二、实验目的1、学习使用“数字图像处理实验教学软件系统”,能够进行图像处理方面的简单操作;2、熟悉图像点运算、几何变换及正交变换的基本原理,了解编程实现的具体步骤;3、观察图像的灰度直方图,明确直方图的作用与意义;4、观察图像点运算与几何变换的结果,比较不同参数条件下的变换效果;5、观察图像正交变换的结果,明确图像的空间频率分布情况。
三、实验原理1、图像灰度直方图、点运算与几何变换的基本原理及编程实现步骤图像灰度直方图就是数字图像处理中一个最简单、最有用的工具,它描述了一幅图像的灰度分布情况,为图像的相关处理操作提供了基本信息。
图像点运算就是一种简单而重要的处理技术,它能让用户改变图像数据占据的灰度范围。
点运算可以瞧作就是“从象素到象素”的复制操作,而这种复制操作就是通过灰度变换函数实现的。
如果输入图像为A(x,y),输出图像为B(x,y),则点运算可以表示为:B(x,y)=f[A(x,y)]其中f(x)被称为灰度变换(Gray Scale Transformation,GST)函数,它描述了输入灰度值与输出灰度值之间的转换关系。
一旦灰度变换函数确定,该点运算就完全确定下来了。
另外,点运算处理将改变图像的灰度直方图分布。
点运算又被称为对比度增强、对比度拉伸或灰度变换。
点运算一般包括灰度的线性变换、阈值变换、窗口变换、灰度拉伸与均衡等。
图像几何变换就是图像的一种基本变换,通常包括图像镜像变换、图像转置、图像平移、图像缩放与图像旋转等,其理论基础主要就是一些矩阵运算,详细原理可以参考有关书籍。
实验系统提供了图像灰度直方图、点运算与几何变换相关内容的文字说明,用户在操作过程中可以参考。
下面以图像点运算中的阈值变换为例给出编程实现的程序流程图,如下:2、图像正交变换的基本原理及编程实现步骤数字图像的处理方法主要有空域法与频域法,点运算与几何变换属于空域法。
数字图像处理实验报告(全答案解析)..

数字图像处理实验报告(全答案解析)..实验⼀常⽤MATLAB图像处理命令⼀、实验⽬的1、熟悉并掌握MATLAB⼯具的使⽤;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/y5:m = imadjust(a,[,],[0.5;1]) ;%图像变亮n = imadjust(a,[,],[0;0.5]) ;%图像变暗g=255-a;%负⽚效果四、实验内容(请将实验程序填写在下⽅合适的位置,实验图像结果拷屏粘贴)1、读⼊⼀幅RGB图像,变换为灰度图像和⼆值图像,并在同⼀个窗⼝内分成三个⼦窗⼝来分别显⽰RGB图像和灰度图像,注上⽂字标题。
数字图像处理实验报告

数字图像处理实验报告数字图像处理实验报告1一. 实验内容:主要是图像的几何变换的编程实现,具体包括图像的读取、改写,图像平移,图像的镜像,图像的转置,比例缩放,旋转变换等.具体要求如下:1.编程实现图像平移,要求平移后的图像大小不变;2.编程实现图像的镜像;3.编程实现图像的转置;4.编程实现图像的比例缩放,要求分别用双线性插值和最近邻插值两种方法来实现,并比较两种方法的缩放效果;5.编程实现以任意角度对图像进行旋转变换,要求分别用双线性插值和最近邻插值两种方法来实现,并比较两种方法的旋转效果.二.实验目的和意义:本实验的目的是使学生熟悉并掌握图像处理编程环境,掌握图像平移、镜像、转置和旋转等几何变换的方法,并能通过程序设计实现图像文件的读、写操作,及图像平移、镜像、转置和旋转等几何变换的程序实现.三.实验原理与主要框架:3.1 实验所用编程环境:Visual C++(简称VC)是微软公司提供的基于C/C++的应用程序集成开发工具.VC拥有丰富的功能和大量的扩展库,使用它能有效的创建高性能的Windows应用程序和Web应用程序.VC除了提供高效的C/C++编译器外,还提供了大量的可重用类和组件,包括著名的微软基础类库(MFC)和活动模板类库(ATL),因此它是软件开发人员不可多得的开发工具.VC丰富的功能和大量的扩展库,类的重用特性以及它对函数库、DLL库的支持能使程序更好的模块化,并且通过向导程序大大简化了库资源的使用和应用程序的开发,正由于VC具有明显的优势,因而我选择了它来作为数字图像几何变换的开发工具.在本程序的开发过程中,VC的核心知识、消息映射机制、对话框控件编程等都得到了生动的体现和灵活的应用.3.2 实验处理的对象:256色的BMP(BIT MAP )格式图像BMP(BIT MAP )位图的文件结构:具体组成图: BITMAPFILEHEADER位图文件头(只用于BMP文件) bfType=BM bfSize bfReserved1bfReserved2bfOffBitsbiSizebiWidthbiHeightbiPlanesbiBitCountbiCompressionbiSizeImagebi_PelsPerMeterbiYPelsPerMeterbiClrUsedbiClrImportant单色DIB有2个表项16色DIB有16个表项或更少256色DIB有256个表项或更少真彩色DIB没有调色板每个表项长度为4字节(32位)像素按照每行每列的顺序排列每一行的字节数必须是4的整数倍BITMAPINFOHEADER 位图信息头 Palette 调色板 DIB Pi_els DIB图像数据1. BMP文件组成BMP文件由文件头、位图信息头、颜色信息和图形数据四部分组成.2. BMP文件头BMP文件头数据结构含有BMP文件的类型(必须为BMP)、文件大小(以字节为单位)、位图文件保留字(必须为0)和位图起始位置(以相对于位图文件头的偏移量表示)等信息.3. 位图信息头BMP位图信息头数据用于说明位图的尺寸(宽度,高度等都是以像素为单位,大小以字节为单位, 水平和垂直分辨率以每米像素数为单位) ,目标设备的级别,每个像素所需的位数, 位图压缩类型(必须是 0)等信息.4. 颜色表颜色表用于说明位图中的颜色,它有若干个表项,每一个表项是一个RGBQUAD类型的结构,定义一种颜色.具体包含蓝色、红色、绿色的亮度(值范围为0-255)位图信息头和颜色表组成位图信息5. 位图数据位图数据记录了位图的每一个像素值,记录顺序是在扫描行内是从左到右,扫描行之间是从下到上.Windows规定一个扫描行所占的字节数必须是 4的倍数(即以long为单位),不足的以0填充.3.3 BMP(BIT MAP )位图的显示:①一般显示方法:1. 申请内存空间用于存放位图文件2. 位图文件读入所申请内存空间中3. 在函数中用创建显示用位图, 用函数创建兼容DC,用函数选择显示删除位图但以上方法的缺点是: 1)显示速度慢; 2) 内存占用大; 3) 位图在缩小显示时图形失真大,(可通过安装字体平滑软件来解决); 4) 在低颜色位数的设备上(如256显示模式)显示高颜色位数的图形(如真彩色)图形失真严重.②BMP位图缩放显示 :用视频函数来显示位图,内存占用少,速度快,而且还可以对图形进行淡化(Dithering )处理.淡化处理是一种图形算法,可以用来在一个支持比图像所用颜色要少的设备上显示彩色图像.BMP位图显示方法如下:1. 打开视频函数,一般放在在构造函数中2. 申请内存空间用于存放位图文件3. 位图文件读入所申请内存空间中4. 在函数中显示位图5. 关闭视频函数 ,一般放在在析构函数中以上方法的优点是: 1)显示速度快; 2) 内存占用少; 3) 缩放显示时图形失真小,4) 在低颜色位数的设备上显示高颜色位数的图形图形时失真小; 5) 通过直接处理位图数据,可以制作简单动画.3.4 程序中用到的访问函数Windows支持一些重要的DIB访问函数,但是这些函数都还没有被封装到MFC中,这些函数主要有:1. SetDIBitsToDevice函数:该函数可以直接在显示器或打印机上显示DIB. 在显示时不进行缩放处理.2. StretchDIBits函数:该函数可以缩放显示DIB于显示器和打印机上.3. GetDIBits函数:还函数利用申请到的内存,由GDI位图来构造DIB.通过该函数,可以对DIB的格式进行控制,可以指定每个像素颜色的位数,而且可以指定是否进行压缩.4. CreateDIBitmap函数:利用该函数可以从DIB出发来创建GDI位图.5. CreateDIBSection函数:该函数能创建一种特殊的DIB,称为DIB项,然后返回一个GDI位图句柄.6. LoadImage函数:该函数可以直接从磁盘文件中读入一个位图,并返回一个DIB句柄.7. DrawDibDraw函数:Windows提供了窗口视频(VFW)组件,Visual C++支持该组件.VFW中的DrawDibDraw函数是一个可以替代StretchDIBits的函数.它的最主要的优点是可以使用抖动颜色,并且提高显示DIB的速度,缺点是必须将VFW代码连接到进程中.3.5 图像的几何变换图像的几何变换,通常包括图像的平移、图像的镜像变换、图像的转置、图像的缩放和图像的旋转等.一、实验的目的和意义实验目的:本实验内容旨在让学生通过用VC等高级语言编写数字图像处理的一些基本算法程序,来巩固和掌握图像处理技术的基本技能,提高实际动手能力,并通过实际编程了解图像处理软件的实现的基本原理。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数字图像处理实验报告实验一 数字图像的基本操作和灰度变换一、 实验目的1. 了解数字图像的基本数据结构2. 熟悉Matlab 中数字图像处理的基本函数和基本使用方法3. 掌握图像灰度变换的基本理论和实现方法4. 掌握直方图均衡化增强的基本理论和实现方法二、实验原理1. 图像灰度的线性变换灰度的线性变换可以突出图像中的重要信息。
通常情况下,处理前后的图像灰度级是相同的,即处理前后的图像灰度级都为[0,255]。
那么,从原理上讲,我们就只能通过抑制非重要信息的对比度来腾出空间给重要信息进行对比度展宽。
设原图像的灰度为),(j i f ,处理后的图像的灰度为),(j i g ,对比度线性展宽的原理示意图如图1.1所示。
假设原图像中我们关心的景物的灰度分布在[a f ,b f ]区间内,处理后的图像中,我们关心的景物的灰度分布在[a g ,b g ]区间内。
在这里)(a b g g g -=∆()b a f f f >∆=-,也就是说我们所关心的景物的灰度级得到了展宽。
根据图中所示的映射关系中分段直线的斜率我们可以得出线性对比度展b g a g a b )j图1.1 对比度线性变换关系宽的计算公式:),(j i f α, a f j i f <≤),(0=),(j i ga a g f j i fb +-)),((,b a f j i f f <≤).,( (1-1)b b g f j i fc +-)),((,255),(<≤j i f f b(m i ,3,2,1 =;n j ,3,2,1 =)其中,a a f g a =,a b a b f f g g b --=,bbf g c --=255255,图像的大小为m ×n 。
2. 直方图均衡化直方图均衡化是将原始图像通过某种变换,得到一幅灰度直方图为均匀分布的新图像的方法。
离散图像均衡化处理可通过变换函数:来实现。
三、实验步骤1.图像灰度线性变换的实现(1)读入一幅灰度图像test1.tif ,显示其灰度直方图。
新建M 文件,Untitled1.m ,编辑代码如下。
得到读入图像test1和它的灰度直方图。
(2)根据图像灰度直方图,选择所关心的图像景物的灰度分布范围[fa,fb],以及拟变换的灰度分布范围[ga,gb],实现对图像的灰度线性变换,调整a,b,c 的值,观察对处理结果的影响。
由[x,y]=size(I),得到图像矩阵的大小。
[45,55]变换为[30,70]在上述代码中修改fa,fb,ga,gb的值,即可得到新的线性变换图像。
[80,100]变换成[100,140][10,20]变换成[10,50]结论:通过调整a,b,c的值,可以对任一灰度区间进行拉伸和压缩,斜率越大,更能突出感兴趣的灰度区间,抑制不感兴趣的灰度区间。
3. 图像的均衡化处理(1)读入一幅灰度图像test2.tif,求出其直方图(2)利用Matlab函数实现图像的均衡化处理(3)同屏显示处理前后的图像和灰度直方图,说明处理前后直方图的变化以及对应的灰度变化。
结论:处理前灰度直方图分布不均匀,像素灰度范围窄且主要集中在[0:100]低灰度值区域;处理后灰度直方图近似均匀分布,占据了整个灰度值的允许范围,增加了图像的动态范围。
处理后的灰度级减少,以换取对比度的加大。
四、思考问题1.在映射关系中,分段直线的斜率的大小对图像处理结果有哪些影响?控制分段斜率的大小,可以对任一灰度区间进行拉伸和压缩,突出感兴趣的灰度区间,抑制不感兴趣的灰度区间,调整图像对比度,改善图像视觉效果。
斜率大于1时,灰度区间被展宽;斜率小于1时,灰度区间被压缩。
2.在进行对比度扩展时,如果确定和选取所关心的景物?通过将亮暗差异扩大,来找出人所关心的景物。
3. 直方图均衡化适用于什么形式的灰度分布情形?直方图均衡化适合原图对比度不高而导致图像效果不清晰,甚至难以辨认的且动态范围分布很小的图像。
实验二图像的空间域增强一、实验目的1. 熟悉图像空间域增强方法,掌握增强模板使用方法。
2. 掌握均值滤波器、中值滤波器的理论基础和实现方法。
3. 掌握图像锐化的基本理论和实现方法。
4. 验证图像滤波处理结果。
二、实验原理图像增强是数字图像处理的基本内容之一,其目的是根据应用需要突出图像中的某些“有用”信息,削弱或去除不需要的信息,以改善图像的视觉效果,或突出图像的特征,便于计算机处理。
图像增强可以在空间域进行,也可以在频率域中进行。
空间域滤波主要利用空间模板进行,如3⨯3,5⨯5模板等。
一般来说,使用大小为m×n 的滤波器对大小为M×N 的图像f进行空间滤波,可表示成:其中,m=2a+1, n=2b+1, w(s,t)是滤波器系数,f(x,y)是图像值均值滤波器是一种空间平滑滤波器,它是对包含噪声的图像上的每个像素点,用它邻域内像素的平均值替代原来的像素值。
例如,采用一个3×3的模板,待处理的像素为f(i,j),则处理后图像对应的像素值为g(i-1,j+1)g(i,j)=1/9*(f(i-1,j-1)+f(i-1,j)+f(i-1,j+1)+f(i,j-1)+f(i,j)+ f(i,j+1)+f(i+1,j-1)+f(i+1,j)+f(i+1,j+1));中值滤波器也是一种空间平滑滤波器,它是对以图像像素点为中心的一个滑动窗口内的诸像素灰度值排序,用中值代替窗口中心像素的原来灰度值,因此它是一种非线性的图像平滑法。
采用Laplacian锐化算子进行图像边缘的锐化,是采用二阶差分运算获得像素间的差异值,由此,获得对图像景物边界的锐化。
Laplacian也可以算子也可以写成是模板作用的方式,如下:设待处理的像素为f(i,j),则处理后图像对应的像素值为g(i-1,j+1),则g(i,j)=4*f(i,j) -(f(i-1,j-1)+f(i,j-1)+f(i,j+1)+f(i+1,j));常用的锐化算子还有Roberts、Prewitt和Sobel算子等。
三、实验步骤1.读入一幅256×256 大小、256 级灰度的数字图像test3。
读入图像代码如下:2. 图像的平滑滤波处理(1)对原图像分别加入高斯噪声、椒盐噪声。
左图I1为加椒盐噪声后的图像,右图I2为加高斯噪声后的图像。
(2)利用邻域平均法,分别采用3⨯3,5⨯5模板对加噪声图像进行平滑处理,显示原图像、加噪图像和处理后的图像。
M为3*3模板,N为5*5模板。
采用3*3对椒盐噪声图像I1进行平滑处理得到I11:采用5*5对椒盐噪声图像I1进行平滑处理得到I11:采用3*3对高斯噪声图像I2进行平滑处理得到I22:采用5*5对高斯噪声图像I2进行平滑处理得到I22:(3)利用中值滤波法,分别采用3⨯3,5⨯5模板对加噪声图像进行去噪处理,显示原图像、加噪图像和处理后的图像。
采用3*3对椒盐噪声图像I1进行平滑处理得到I11:采用5*5对椒盐噪声图像I1进行平滑处理得到I11:采用3*3对高斯噪声图像I2进行平滑处理得到I22:采用5*5对高斯噪声图像I2进行平滑处理得到I22:(4)比较各种滤波方法和滤波模板的处理结果均值滤波更适合滤除高斯噪声,但同时使图像变得模糊,尤其在边缘和细节处,且模板越大,模糊程度越严重。
中值滤波更适合滤除椒盐噪声,且在滤除噪声的同时能有效保护边缘少受模糊,且模板的选择要根据从小到大窗口的实验来选择最佳的,在此实验中,3*3模板效果最佳。
3. 图像的锐化处理(1)利用Laplacian 锐化算子(α=-1)对256×256 大小、256 级灰度的数字图像test4进行锐化处理,显示处理前、后图像。
I=imread(‘F:\image\test4.gif’);subplot(2,1,1),imshow(I)title('原图像')a=[0,1,0;1,-4,1;0,1,0];f=imfilter(I,a);subplot(2,1,2),imshow(f)title('拉普拉斯算子处理后')(2 )分别利用Roberts、Prewitt 和Sobel 边缘检测算子,对数字图像test4进行边缘检测,显示处理前、后图像。
利用sobel算子进行边缘检测:利用prewitt算子进行边缘检测:利用roberts算子进行边缘检测:四、思考问题1.采用均值滤波、中值滤波,对高斯噪声和椒盐噪声的抑制哪种比较有效?均值滤波对高斯噪声的抑制更有效,中值滤波对椒盐噪声的抑制更有效。
2.模板大小的不同,所处理效果有何不同?为什么?均值滤波,模板越大,在去噪能力增强的同时,模糊程度越大。
因为均值滤波是邻域滤波,用邻域内各像素的灰度平均值代替该像素原来的灰度值。
中值滤波,一般很难事先确定最佳的窗口尺寸,需通过从小窗口到大窗口的中值滤波试验,再从中选择最佳的。
3.对Laplacian锐化算子的处理结果中,对小于0的部分,采用不同的方法标准化到[0,255]时,图像的显示效果有什么不同?为什么?[(g-gmin)/(gmax-gmin)]*255实验三 图像的傅里叶变换和频域处理一、 实验目的1. 熟悉图像空间域和频率域的关系,掌握快速傅里叶变换2. 掌握离散傅里叶变换的性质和应用二、实验原理图像既能在空间域处理,也能在频率域处理。
把图像信息从空域变换到频域,可以更好地分析、加工和处理。
二维离散傅立叶正变换的表达式为:逆变换为:二维离散傅立叶变换具有若干性质,如:线性性、平移性、可分离性、周期性、共轭对称性、旋转不变性等。
可利用离散傅里叶变换,将信号从空间域变换到频率域,在频率域选择合适的滤波器H(u,v)对图像的频谱成分进行处理,然后经逆傅立叶变换得到处理图像,实现图像处理结果。
三、实验步骤1.产生一幅如图所示亮块图像f(x,y)(256×256 大小、暗处=0,亮处=255),对其进行FFT ,使用了test5图像:(1)同屏显示原图f 和FFT(f)的幅度谱图;112()00(,)(,)0,1,2,,1;0,1,2,,1ux vy M N j M Nx y F u v f x y eu M v N π---+====-=-∑∑ 112()001(,)(,)0,1,2,,10,1,2,,1ux vy M N j M Nu v f x y F u v eMN x M y N π--+====-=-∑∑(2)若令f1(x,y)=(-1)x+y f(x,y),重复以上过程,比较二者幅度谱的异同,简述理由;(3)若将f1(x,y)顺时针旋转45 度得到f2(x,y),试显示FFT(f2)的幅度谱,并与FFT(f2)的幅度谱进行比较。