北航数字图象处理实验报告
数字图像处理实验报告
数字图像处理实验报告1. 引言数字图像处理是使用计算机来处理和优化图像的一种技术。
在本实验中,我们将探索几种常见的数字图像处理方法,并使用Python编程语言和相关库来实现。
2. 实验目的本实验的主要目的是:1.了解图像的基本特性和数字图像处理的基本原理;2.熟悉Python编程语言和相关图像处理库的使用;3.实现常见的图像处理算法并进行实验验证。
3. 实验方法在本实验中,我们使用Python编程语言和以下相关库来实现图像处理算法:•OpenCV:用于图像读取、显示和保存等基本操作;•Numpy:用于图像数据的处理和算术运算;•Matplotlib:用于图像的可视化和结果展示。
以下是实验涉及到的图像处理方法和步骤:1.图像读取和显示:使用OpenCV库读取图像,使用Matplotlib库显示图像;2.图像的灰度化:将彩色图像转换为灰度图像;3.图像的二值化:将灰度图像转换为黑白二值图像;4.图像的平滑处理:使用平滑滤波器对图像进行平滑处理,如均值滤波和高斯滤波;5.图像的边缘检测:使用边缘检测算法对图像进行边缘检测,如Sobel算子和Canny算子;6.图像的直方图均衡化:对灰度图像进行直方图均衡化,增强图像的对比度。
4. 实验过程和结果4.1 图像读取和显示首先,我们使用OpenCV库读取一张图像,并使用Matplotlib库显示该图像:import cv2import matplotlib.pyplot as plt# 读取图像img = cv2.imread('image.jpg')# 显示图像plt.imshow(cv2.cvtColor(img, cv2.COLOR_BGR2RGB)) plt.axis('off')plt.show()4.2 图像的灰度化接下来,我们将彩色图像转换为灰度图像:# 灰度化图像gray_img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) # 显示灰度图像plt.imshow(gray_img, cmap='gray')plt.axis('off')plt.show()4.3 图像的二值化然后,我们将灰度图像转换为黑白二值图像:# 二值化图像_, binary_img = cv2.threshold(gray_img, 128, 255, cv2.THRESH_BINARY)# 显示二值图像plt.imshow(binary_img, cmap='gray')plt.axis('off')plt.show()4.4 图像的平滑处理接下来,我们使用平滑滤波器对图像进行平滑处理,例如使用5x5的均值滤波器和高斯滤波器:# 均值滤波mean_img = cv2.blur(img, (5, 5))# 高斯滤波gaussian_img = cv2.GaussianBlur(img, (5, 5), 0) # 显示平滑处理后的图像plt.figure(figsize=(10, 5))plt.subplot(121)plt.imshow(cv2.cvtColor(mean_img, cv2.COLOR_BGR2R GB))plt.title('Mean Filter')plt.axis('off')plt.subplot(122)plt.imshow(cv2.cvtColor(gaussian_img, cv2.COLOR_B GR2RGB))plt.title('Gaussian Filter')plt.axis('off')plt.show()4.5 图像的边缘检测然后,我们使用边缘检测算法对图像进行边缘检测,例如使用Sobel算子和Canny算子:# 边缘检测sobel_img = cv2.Sobel(gray_img, cv2.CV_8U, 1, 1, ksize=3)canny_img = cv2.Canny(gray_img, 50, 150)# 显示边缘检测结果plt.figure(figsize=(10, 5))plt.subplot(121)plt.imshow(sobel_img, cmap='gray')plt.title('Sobel Operator')plt.axis('off')plt.subplot(122)plt.imshow(canny_img, cmap='gray')plt.title('Canny Operator')plt.axis('off')plt.show()4.6 图像的直方图均衡化最后,我们对灰度图像进行直方图均衡化,以增强图像的对比度:# 直方图均衡化equalized_img = cv2.equalizeHist(gray_img)# 显示直方图均衡化结果plt.imshow(equalized_img, cmap='gray')plt.axis('off')plt.show()5. 实验总结通过本实验,我们熟悉了数字图像处理的基本方法和步骤,并使用Python编程语言和相关库实现了图像的读取、显示、灰度化、二值化、平滑处理、边缘检测和直方图均衡化等操作。
数字图像处理实验报告
数字图像处理实验报告数字图像处理实验报告(一)实验目的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一. 实验内容:主要是图像的几何变换的编程实现,具体包括图像的读取、改写,图像平移,图像的镜像,图像的转置,比例缩放,旋转变换等.具体要求如下: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 bfReserved1bfReserved2bfOffBitsbiSizebiWidthbiHeightbiPlanesbiBitCountbiCompressionbiSizeImagebiXPelsPerMeterbiYPelsPerMeterbiClrUsedbiClrImportant单色DIB有2个表项16色DIB有16个表项或更少256色DIB有256个表项或更少真彩色DIB没有调色板每个表项长度为4字节(32位)像素按照每行每列的顺序排列每一行的字节数必须是4的整数倍BITMAPINFOHEADER 位图信息头 Palette 调色板 DIB Pixels 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 图像的几何变换图像的几何变换,通常包括图像的平移、图像的镜像变换、图像的转置、图像的缩放和图像的旋转等.数字图像处理实验报告2一、实验的目的和意义实验目的:本实验内容旨在让学生通过用VC等高级语言编写数字图像处理的一些基本算法程序,来巩固和掌握图像处理技术的基本技能,提高实际动手能力,并通过实际编程了解图像处理软件的实现的基本原理。
《数字图像处理》实验报告
《数字图像处理》实验报告数字图像处理是一门将图像进行数字化处理的学科,它通过计算机算法和技术手段对图像进行分析、增强、压缩和重建等操作。
在本次实验中,我们学习了数字图像处理的基本概念和常用算法,并通过实验来探索其应用和效果。
首先,我们进行了图像的读取和显示实验。
通过使用Python中的OpenCV库,我们能够轻松地读取图像文件,并将其显示在屏幕上。
这为我们后续的实验奠定了基础。
同时,我们还学习了图像的像素表示方法,了解了图像由像素点组成的原理。
这使我们能够更好地理解后续实验中的算法和操作。
接下来,我们进行了图像的灰度化实验。
灰度化是将彩色图像转换为灰度图像的过程。
在实验中,我们使用了不同的算法来实现灰度化操作,包括平均值法、最大值法和加权平均法等。
通过比较不同算法得到的灰度图像,我们发现不同算法对图像的处理效果有所差异,这使我们深入理解了灰度化的原理和应用。
随后,我们进行了图像的直方图均衡化实验。
直方图均衡化是一种用于增强图像对比度的方法。
在实验中,我们使用了直方图均衡化算法来对图像进行处理,并观察了处理前后的效果变化。
通过实验,我们发现直方图均衡化能够显著提高图像的对比度,使图像更加清晰和鲜明。
在进一步探索图像处理技术的过程中,我们进行了图像的滤波实验。
滤波是一种常用的图像处理操作,它通过对图像进行卷积操作来实现。
在实验中,我们学习了不同类型的滤波器,包括均值滤波器、高斯滤波器和中值滤波器等。
通过比较不同滤波器对图像的处理效果,我们发现每种滤波器都有其适用的场景和效果。
此外,我们还进行了图像的边缘检测实验。
边缘检测是一种用于提取图像边缘信息的方法。
在实验中,我们学习了不同的边缘检测算法,包括Sobel算子、Canny算子和Laplacian算子等。
通过比较不同算法对图像的处理效果,我们发现每种算法都有其独特的特点和应用。
最后,我们进行了图像的压缩实验。
图像压缩是一种将图像数据进行压缩以减小文件大小的方法。
北航数图实验报告四 图像腐蚀和膨胀
北京航空航天大学数字图像处理实验报告实验四:图像分割处理学院专业方向班级学号学生姓名指导教师实验四图像分割处理实验1.实验目的(1)了解图像分割的基本原理,并利用图像分割算法进行图像分割处理;(2)掌握数学形态学的基本运算。
2.实验内容(1)利用类间方差阈值算法实现图像的分割处理;(2)利用形态学处理进行处理结果修正。
3. 实验要求(1)实验用图:(2)对输入图像进行平滑处理,以减小噪声对分割处理的影响;(3)利用类间方差阈值算法对滤波处理后图像进行分割处理,获取分割图像;(4)利用数学形态学中的腐蚀和膨胀运算处理,剔除分割处理结果中的一些细小的残余误分割点,在进行腐蚀和膨胀运算时可采用半径为r的圆形结构元素,注意比较选取不同r值时的处理结果。
四、实验代码function STshiyan4_OpeningFcn(hObject, eventdata, handles, varargin) I=imread('4.bmp');I=rgb2gray(I);subplot(3,3,1);imshow(I);title('原图像');IM=medfilt2(I);%中值滤波subplot(3,3,2);imshow(IM);title('中值滤波后图像');function pushbutton1_Callback(hObject, eventdata, handles)I1=imread('4.bmp');I1=rgb2gray(I1);T=Otsu(I1);IM1=medfilt2(I1);s=size(IM1);for m=1:s(1)for n=1:s(2)if IM1(m,n)>=TIM1(m,n)=255;elseIM1(m,n)=0;endendendsubplot(3,3,3);imshow(IM1);title('最大类间方差法');function pushbutton2_Callback(hObject, eventdata, handles) I = imread('4.bmp');%--------------r=1腐蚀--------------------------se1 = strel('disk',1,8);I1 = imerode(I,se1);subplot(3,3,4);imshow(I1);title('r=1的腐蚀运算');%--------------r=2腐蚀--------------------------se2 = strel('disk',2,8);I2 = imerode(I,se2);subplot(3,3,5);imshow(I2);title('r=2的腐蚀运算');%--------------r=3腐蚀--------------------------se3 = strel('disk',3,8);I3 = imerode(I,se3);subplot(3,3,6);imshow(I3);title('r=3的腐蚀运算');function pushbutton3_Callback(hObject, eventdata, handles) I = imread('4.bmp');%--------------r=1膨胀--------------------------se1 = strel('disk',1,8);I1 = imdilate(I,se1);subplot(3,3,7);imshow(I1);title('r=1的膨胀运算');%--------------r=2膨胀--------------------------se2 = strel('disk',2,8);I2 = imdilate(I,se2);subplot(3,3,8);imshow(I2);title('r=2的膨胀运算');%--------------r=3膨胀--------------------------se3 = strel('disk',3,8);I3 = imdilate(I,se3);subplot(3,3,9);imshow(I3);title('r=3的膨胀运算');五、实验结果程序运行后,进入到GUI页面,选择相应的按钮就可以显示相应的变换图像结果,如下:。
北航_仪器光电综合实验报告_基于CVIPTOOLS的图像处理系列实验
仪器科学与光电工程学院仪器光电综合实验实验报告基于CVIPTOOLS的图像处理系列实验2012/5/21实验一熟悉CVIPtools 一、处理结果及问题回答:(1)将原图进行裁减旋转放大处理:Figure 1裁减旋转放大(2)将图像进行相加处理:左图为中间图像取反。
Figure 2图像相加(3)将图像进行相与处理:左图为中间图像取反。
Figure 3图像相与(4)低通滤波/histogram equalization进行增强,直方图均衡化。
左图为原图,中图为低通滤波后图形,右图为histogram equalization后图形。
有图像对比可以看出,低通滤波可以滤除图像中频率较大部分,滤除结果由滤波其参数决定,在世界结果是使图像变模糊,即细节部分被减少。
二、练习:Figure 4原图及处理后图像实验二边缘/线探测一、处理结果及问题回答:(1)边缘探测利用kirsch算法进行边缘提取Figure 5边缘提取效果较好,边缘得到很明显的提取。
(2)改变Post-threshold parameter值Post-threshold值为64:Figure 6改变Post-threshold parameter值相比于不改变改变Post-threshold parameter值,效果大大降低。
(3)加入噪声并处理,利用边缘提取算法利用gaussian1获得噪声提取效果如下:Figure 7噪声提取效果通过多次尝试,利用kirsch边缘算子进行提取时,采用gaussian1预滤波效果相对较好。
主要问题回答:(1)噪声在边缘提取算法中会产生什么效果?从结果能够看出“虚假”边缘?根据边缘提取原理,解释为什么含有噪声的图像会出现“虚假”边缘?答:从边缘提取实际结果可以看出,salt and pepper噪声会在边缘提取会产生“虚假”的边缘,即由于噪声改变了边缘附近的阈值,使边缘模糊,从而在提取的过程中就出现了“虚假”的边缘,并对最终提取效果带来较大影响。
数字图像处理实验报告2
实验二: 数字图像的空间域滤波——平滑滤波1. 1. 实验目的2.掌握图像滤波的基本定义及目的。
3.理解空间域滤波的基本原理及方法。
4.掌握进行图像的空域滤波的方法。
1. 2. 实验基本原理2.空间域增强空间域滤波是在图像空间中借助模板对图像进行领域操作, 处理图像每一个像素的取值都是根据模板对输入像素相应领域内的像素值进行计算得到的。
空域滤波基本上是让图像在频域空间内某个范围的分量受到抑制, 同时保证其他分量不变, 达到增强图像的目的。
空域滤波一般分为线性滤波和非线性滤波两类。
各种空域滤波器根据功能主要分为平滑滤波器和锐化滤波器。
平滑的目的可分为两类: 一类是模糊, 目的是在提取较大的目标前去除太小的细节或将目标内的小肩端连接起来;另一类是消除噪声。
锐化的目的是为了增强被模糊的细节。
结合这两种分类方法, 可将空间滤波增强分为四类:线性平滑滤波器(低通)非线性平滑滤波器(低通)线性锐化滤波器(高通)非线性锐化滤波器(高通)1)空间滤波器都是基于模板卷积, 其主要工作步骤是:2)将模板在图中移动, 并将模板中心与图中某个像素位置重合;3)将模板上的系数与模板下对应的像素相乘;4)将所有乘积相加;5)将和(模板的输出响应)赋给图中对应模板中心位置的像素。
3.平滑滤波器1)线性平滑滤波器线性低通平滑滤波器也称为均值滤波器, 这种滤波器的所有系数都是正数, 对3×3的模板来说, 最简单的是取所有系数为1, 为了保持输出图像任然在原来图像的灰度值范围内, 模板与象素邻域的乘积都要除以9。
MATLAB 提供了fspecial 函数生成滤波时所用的模板, 并提供filter2和imfilter 函数用指定的滤波器模板对图像进行运算。
函数fspecial 的语法格式为:h=fspecial(type);h=fspecial(type,parameters);其中参数type 指定滤波器的种类, parameters 是与滤波器种类有关的具体参数。
数字图像处理实验报告
数字图像处理实验报告引言数字图像处理是一门研究如何对图像进行数字化处理的学科,它的应用广泛,涵盖了图像的获取、增强、压缩、分割等多个方面。
本次实验旨在探索数字图像处理的基本原理和常用技术,并通过实践操作加深对数字图像处理的理解。
实验目的1.学习掌握数字图像处理的基本原理;2.熟悉常用的数字图像处理工具和方法;3.实践应用数字图像处理技术解决实际问题。
实验环境在本次实验中,我们使用了以下环境和工具:- 操作系统:Windows 10 - 编程语言:Python - 图像处理库:OpenCV实验步骤步骤一:图像获取与显示首先,我们需要获取一张待处理的图像,并对其进行显示。
在Python中,我们可以使用OpenCV库来实现图像的读取和显示。
以下是示例代码:import cv2# 读取图像image = cv2.imread('image.jpg')# 显示图像cv2.imshow('Image', image)cv2.waitKey(0)cv2.destroyAllWindows()步骤二:图像增强图像增强是数字图像处理中常用的技术之一,旨在改善图像的质量和可视化效果。
常见的图像增强技术包括灰度转换、直方图均衡化、滤波器等。
以下是示例代码:import cv2# 读取图像image = cv2.imread('image.jpg')# 灰度转换gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GR AY)# 直方图均衡化equalized_image = cv2.equalizeHist(gray_image)# 高斯滤波器blurred_image = cv2.GaussianBlur(equalized_image, (5, 5), 0)# 边缘增强enhanced_image = cv2.Canny(blurred_image, 100, 20 0)# 显示图像cv2.imshow('Enhanced Image', enhanced_image)cv2.waitKey(0)cv2.destroyAllWindows()步骤三:图像压缩图像压缩是数字图像处理中的重要话题,旨在减少图像的存储空间和传输带宽。
北航数字图像处理报告
数字图像处理实验报告实验结果第二次试验实验结果图如下,第一张为原图,第2,3张分别为加入椒盐噪声3和椒盐噪声5的图像。
均值滤波均值滤波是典型的线性滤波算法,他在图像的目标像素上加了一个模板,该模板包括了其周围的临近像素。
再用模板中的全体像素的平均值来代替原来像素值。
均值滤波也称为线性滤波,其采用的主要方法为领域平均法。
3*3模板是把每个像素都用周围的8个像素来做均值操作。
可以平滑图像,速度快,算法简单。
但是无法完全去掉噪声,只能微弱的减弱它。
同时这样会使得图像变得模糊。
中值滤波中值滤波法是一种非线性平滑技术,它将每一像素点的灰度值设置为该点某邻域窗口内的所有像素点灰度值的中值.1:通过从图像中的某个采样窗口取出奇数个数据进行排序2:用排序后的中值取代要处理的数据即可中值滤波法可以很好地消除椒盐噪声,在光学测量条纹图象的相位分析处理方法中有特殊作用,但如在图像中含有较多的点线等细节信息,使用中值滤波的方法将很可能导致这些信息丢失。
中值滤波在图像处理中,常用于用来保护边缘信息,是经典的平滑噪声的方法如图为使用中值滤波对椒盐噪声污染的图片进行滤波后的效果图。
滤波效果较均值滤波好得多。
高斯滤波由于高斯函数的傅立叶变换仍是高斯函数, 因此高斯函数能构成一个在频域具有平滑性能的低通滤波器。
可以通过在频域做乘积来实现高斯滤波。
均值滤波是对是对信号进行局部平均, 以平均值来代表该像素点的灰度值。
矩形滤波器(Averaging Box Filter)对这个二维矢量的每一个分量进行独立的平滑处理。
通过计算和转化 ,得到一幅单位矢量图。
这个512×512的矢量图被划分成一个8×8的小区域 ,再在每一个小区域中 ,统计这个区域内的主要方向 ,亦即将对该区域内点方向数进行统计,最多的方向作为区域的主方向。
于是就得到了一个新的64×64的矢量图。
这个新的矢量图还可以采用一个3×3模板进行进一步的平滑。
数字图像处理实验报告
数字图像处理实验报告图像处理课程的目标是培养学生的试验综合素质与能力。
使学生通过实践,理解相关理论学问,将各类学问信息进行新的组合,制造出新的方法和新的思路,提高学生的科学试验与实际动手操作能力[1]。
从影像科筛选有价值的图像,建成影像学数字化试验教育平台,系统运行正常;具备图像上传、图像管理、图像检索与扫瞄、试验报告提交、老师批阅等功能;能满意使用要求[2]。
1.试验内容设计思路1.1项目建设内容和方法数字图像处理的内容:完整的数字图像处理大体上分为图像信息的猎取,存储,传送,处理,输出,和显示几个方面。
数字图像信息的猎取主要是把一幅图像转换成适合输入计算机和数字设备的数字信号,包括摄取图像,光、电转换及数字化。
数字图像信息的存储,数字图像信息的突出特点是数据量巨大,为了解决海量存储问题,数字图像的存储主要研究图像压缩,图像格式及图像数据库技术。
数字图像信息的传送数字图像信息的传送可分为系统内部传送与远距离传送[4]数字图像信息处理包括图像变换,图像增加,图像复原,彩色与多光谱处理图像重建,小波变换,图像编码,形态学,目标表示与描述。
数字图像输出和显示,最终目的是为人和机器供应一幅便于解释和识别的图像,数字图像的输出和显示也是数字图像处理的重要内容之一。
1.2数字图像处理的方法大致可以分为两大类,既空域法和频域法空域法:是把图像看做平面中各个像素组成的集合,然后直接对一维和二维函数进行相应处理,依据新图像生成方法的不同,空域处理法可为点处理法,区处理法,叠代处理法,跟踪处理法,位移不变与位移可变处理法。
点处理法的优点,点处理的典型用途a)灰度处理b)图像二值处理点处理方法的优点a)可用LUT方法快速实现b)节省存储空间。
区处理法,邻域处理法。
它依据输入图像的小邻域的像素值,按某些函数得到输出像素。
区处理法主要用于图象平滑和图像的锐化。
叠代处理法:叠代就是反复进行某些处理运算,图像叠代处理也是如此,拉普拉斯算子或平滑处理的结果是物体轮廓,该图像轮廓边缘太宽或粗细不一,要经过多次叠代把它处理成单像素轮廓——图像细化。
《数字图像处理》图像的几何变换实验报告
《数字图像处理》图像的几何变换实验报告1.实验目的掌握图像几何变换的基本原理,熟练掌握数字图像的缩放、旋转、平移、镜像和转置的基本原理及其 MATLAB 编程实现方法。
2.实验环境MATLAB 6.5 以上版本、WIN XP 或 WIN2000 计算机3.实验内容与要求(一)研究以下程序,分析程序功能;输入执行各命令行,认真观察命令执行的结果。
熟悉程序中所使用函数的调用方法,改变有关参数,观察试验结果。
1、图像缩放clear all, close allI = imread('C:\Users\skr\Desktop\lra.png');Scale = 1.35;J1= imresize(I,Scale,'nearest');J2= imresize(I,Scale,'bilinear');imshow(I),title('Original Image');text(60,20,'李荣桉 1909290239','horiz','center','color','r') figure, imshow(J1), title('Resized Image-- using thenearest neighbor interpolation');text(60,20,'李荣桉 1909290239','horiz','center','color','r')figure, imshow(J2), title('Resized Image-- using thebilinear interpolation');text(60,20,'李荣桉 1909290239','horiz','center','color','r')2、图像旋转clear all, close allI = imread('C:\Users\skr\Desktop\lra.png');Theta = 45;J1= imrotate(I,Theta,'nearest');Theta = -45;J2= imrotate(I,Theta,'bilinear','crop');imshow(I),title('Original Image');text(60,20,'李荣桉 1909290239','horiz','center','color','r')figure, imshow(J1), title('Rotated Image-- using thenearest neighbor interpolation');text(60,20,'李荣桉 1909290239 ','horiz','center','color','r')figure, imshow(J2), title(' Rotated Image-- using thebilinear interpolation'); text(60,20,'李荣桉1909290239','horiz','center','color','r')3、图像水平镜像clear all, close allI = imread('C:\Users\skr\Desktop\lra.png');I1 = flipdim(I,2);I2 = flipdim(I,1);figure(1), subplot(1,2,1), imshow(I);text(60,20,'李荣桉 1909290239','horiz','center','color','r')subplot(1,2,2), imshow(I1);text(60,20,'李荣桉 1909290239','horiz','center','color','r')figure(2), subplot(2,1,1), imshow(I);text(60,20,'李荣桉 1909290239','horiz','center','color','r')subplot(2,1,2), imshow(I2);text(60,20,'李荣桉 1909290239','horiz','center','color','r')4、总结通过实验是我掌握图像几何变换的基本原理,能过了解数字图像的缩放、旋转、平移、镜像和转置的基本原理及其MATLAB 编程实现方法。
北航图像处理实验报告(附程序)
数字图像处理与分析实验报告2012年12月13日星期五一、实验内容1.图像可视化编程(demo文件解析)2.图像的平滑滤波3.边缘检测与提取4.彩色图转灰度图5.直方图均衡化二、实验原理1.Bmp文件结构1)BITMAPFILEHEADERTypedef struct tagBITMAPFILEHEADER{WORD bfType; /*图像文件型态,固定为“BMP”*/ DWORD bfSize; /*图像文件大小,一般不用*/ WORD bfReserved1; /*保留未用*/WORD bfReserved2; /*保留未用*/DWORD bfOffBits; /*图像数据的偏移量*/}BITMAPFILEHEADER;2)BITMAPINFOHEADERTypedef struct tagBITMAPINFOHEADER{DWORD biSize; /*本数据结构大小*/DWORD biWidth; /*象素为单位,图像宽*/DWORD biHeight; /*象素为单位,图像高*/WORD biBitCount; /*每象素所占比特数*/DWORD biSizeImage; /*图像字节数的多少*/.....}BITMAPINFOHEADER;3)颜色表颜色表是一个RGBQUAD结构数组,表项的多少 (数组长度)由图像每象素所占比特数决定,灰度图有256个表项,彩色图无颜色表。
RGBQUAD结构:typedef struct tagRGBQUAD{unsigned char rgbBlue;unsigned char rgbGreen;unsigned char rgbRed;unsigned char rgbReserved;}RGBQUAD;2.图像平滑滤波1)均值滤波原理:使用邻域内像素均值代替当前像素值M是N×N邻域内点的个数作用:局部求均值的运算或平均计算使数字信号变“平坦”,可以在图像中消除或抑制噪声。
数字图像处理实验报告
数字图像处理实验报告一、引言数字图像处理是一门涉及图像获取、图像处理和图像分析的重要学科,广泛应用于计算机科学、电子工程、通信技术等领域。
本报告旨在介绍并总结我所进行的数字图像处理实验,讨论实验的目的、方法、结果和分析。
二、实验目的通过本次实验,旨在掌握和理解数字图像处理的基本原理和常见技术,包括灰度变换、空间域滤波、频域滤波等,以及层次分割、边缘检测和形态学处理等高级应用技术。
三、实验方法1. 寻找合适的图像在实验中,我选用了一张自然风景图像作为处理对象。
这张图像包含丰富的纹理和颜色信息,适合用于多种图像处理方法的验证和比较。
2. 灰度变换灰度变换是数字图像处理中常见的基础操作,可以通过对图像的像素灰度值进行线性或非线性变换,来调整图像的对比度、亮度等特征。
在实验中,我利用线性灰度变换方法将原始彩色图像转换为灰度图像,并进行对比度的调整,观察处理结果的变化。
3. 空间域滤波空间域滤波是一种基于像素邻域的图像处理方法,常用于图像去噪、边缘增强等应用。
我使用了平滑滤波和锐化滤波两种方法,并针对不同的滤波算子和参数进行了实验和比较,评估其对图像细节和边缘保留的影响。
4. 频域滤波频域滤波是一种基于图像的频谱特征的图像处理方法,广泛应用于图像增强、去噪和特征提取等方面。
我利用傅里叶变换将图像从空间域转换到频域,采用理想低通滤波器和巴特沃斯低通滤波器进行图像的模糊处理,并进行了实验对比和分析。
5. 高级应用技术在实验中,我还研究了数字图像处理中的一些高级应用技术,包括层次分割、边缘检测和形态学处理。
通过应用不同的算法和参数,我实现了图像区域分割、提取图像边缘和形态学形状变换等效果,评估处理结果的准确性和稳定性。
四、实验结果与分析通过对以上实验方法的实施,我获得了一系列处理后的图像,并进行了结果的比较和分析。
在灰度变换实验中,我发现线性变换对图像的对比度有较大影响,但对图像的细节变化不敏感;在空间域滤波实验中,平滑滤波可以有效降噪,但会导致图像细节损失,而锐化滤波可以增强图像的边缘效果,但也容易引入噪声;在频域滤波实验中,理想低通滤波对图像的模糊效果明显,而巴特沃斯低通滤波器可以在一定程度上保留图像的高频细节信息;在高级应用技术实验中,边缘检测和形态学处理对提取图像边缘和形状变换非常有效,但参数的选择会对结果产生较大影响。
北京航空航天大学数字图像处理实验报告.
成绩数字图像处理实验报告院(系)名称电子信息工程学院专业名称通信工程学生学号学生姓名2017年5月目录目录 (2)实验一图像变换实验 (3)实验二图像复原实验 (9)实验三图像分割处理实验 (14)实验四用Hough变换进行曲线的参数提取 (19)实验五手写数字识别 (26)附录 (41)实验一图像变换实验1.实验目的:学会对图像进行傅立叶等变换,在频谱上对图像进行分析,增进对图像频域上的感性认识,并用图像变换进行压缩。
2.实验内容:对Lena或cameraman图像进行傅立叶、离散余弦、哈达玛变换。
在频域,对比他们的变换后系数矩阵的频谱情况,进一步,通过逆变换观察不同变换下的图像重建质量情况。
3.实验要求实验采用获取的图像,为灰度图像,该图像每象素由8比特表示。
具体要求如下:(1)对图像进行傅立叶变换、获得变换后的系数矩阵;(2)将傅立叶变换后系数矩阵的频谱用图像输出,观察频谱;(3)通过设定门限,将系数矩阵中95%的(小值)系数置为0,对图像进行反变换,获得逆变换后图像;(4)观察逆变换后图像质量,并比较原始图像与逆变后的峰值信噪比(PSNR)。
(5)对输入图像进行离散余弦、哈达玛变换,重复步骤1-5;(6)比较三种变换的频谱情况、以及逆变换后图像的质量(PSNR)。
4.实验结果图1.1傅里叶变换及逆变换图1.2离散余弦变换及逆变换图1.3哈达玛变换及逆变换观察结果可以发现,将系数矩阵中95%的(小值)系数置为0,对图像进行反变换之后获得逆变换的图像质量有所下降,信噪比提高。
但是图像质量的下降在可以接受的范围内,并且过程中实现了对于图像的压缩。
通过对于信噪比的比较可以发现:离散余弦变换的效果最好,傅里叶变换的效果最差。
5.实验代码:*******************************傅里叶变换**************************** function Fourier_Callback(hObject,eventdata,handles)%-------------------------显示原图像---------------------------------figure=imread('lena512.bmp');subplot(1,3,1);imshow(figure);title('Lena原图');%-----------------------傅里叶变换频谱图------------------------------fourier=fft2(figure);fourier=fftshift(fourier);R=real(fourier);I=imag(fourier);spectrum=abs(fourier);spectrum_norm=(spectrum-min(min(spectrum)))/(max(max(spectrum))-min(min(spectrum))) *255;subplot(1,3,2);imshow(spectrum_norm);title('傅里叶变换频谱图');%-----------------------傅里叶逆变换----------------------------------[height,width]=size(spectrum);spectrum_adjust=sort(reshape(spectrum,[1,height*width])); threshold=spectrum_adjust(round(0.95*height*width));for i=1:heightfor j=1:widthif spectrum(i,j)<=thresholdR(i,j)=0;I(i,j)=0;endendendrefigure=ifft2(ifftshift(R+1i*I));subplot(1,3,3);imshow(uint8(refigure));title('逆变换图像');%--------------------------PSNR-------------------------------------PSNR=PSNR_cal(figure,refigure,8);set(handles.edit2,'string',PSNR);*******************************离散余弦变换**************************** function dct_Callback(hObject,eventdata,handles)%-------------------------显示原图像---------------------------------figure=imread('lena512.bmp');subplot(1,3,1);imshow(figure);title('Lena原图');%----------------------离散余弦变换频谱图------------------------------DCT=dct2(figure);subplot(1,3,2);imshow(uint8(abs(DCT)));title('离散余弦变换频谱图');%-----------------------离散余弦逆变换--------------------------------Size=size(DCT);height=Size(1);width=Size(2);DCT_sort=sort(reshape(DCT,1,width*height));threhold=DCT_sort(round(width*height*0.95));DCT(abs(DCT)<threhold)=0;refigure=idct2(DCT);subplot(1,3,3);imshow(uint8(refigure));title('逆变换图像');%--------------------------PSNR-------------------------------------PSNR=PSNR_cal(figure,refigure,8);set(handles.edit2,'string',PSNR);*******************************哈达玛变换**************************** function Hadamard_Callback(hObject,eventdata,handles)%-------------------------显示原图像---------------------------------figure=imread('lena512.bmp');subplot(1,3,1);imshow(figure);title('Lena原图');%-----------------------哈达玛变换频谱图------------------------------H=hadamard(512);figure=double(figure);DHT=(H*figure*H)./512;subplot(1,3,2);imshow(uint8(DHT));title('哈达玛变换频谱图');%-----------------------哈达玛逆变换----------------------------------Size=size(figure);height=Size(1);width=Size(2);DHT_sort=sort(reshape(DHT,1,width*height));threhold=DHT_sort(round(width*height*0.95));DHT(abs(DHT)<threhold)=0;iH=H^-1;refigure=(iH*DHT*iH)*512;subplot(1,3,3);imshow(uint8(refigure));title('逆变换图像');%--------------------------PSNR-------------------------------------PSNR=PSNR_cal(figure,refigure,8);set(handles.edit2,'string',PSNR);*******************************PSNR计算函数**************************** function[PSNR]=PSNR_cal(figure1,figure2,bit)img=double(figure2);imgn=double(figure1);Size=size(figure1);height=Size(1);width=Size(2);MAX=2^bit-1;PMSE=sum(sum((img-imgn).^2))/(height*width)/MAX^2; PSNR=-10*log10(PMSE);end实验二图像复原实验1.实验目的:利用反向滤波和维纳滤波进行降质图像复原,比较不同参数选择对复原结果的影响。
数字图像处理实验报告
数字图像处理实验报告数字图像处理实验报告一、引言数字图像处理是计算机科学与工程领域中的一个重要研究方向。
通过使用数字化技术,对图像进行采集、传输、存储和处理,可以实现对图像的增强、恢复、分析和识别等功能。
本实验旨在通过对数字图像处理算法的实践应用,探索图像处理的原理和方法。
二、实验目的本实验的主要目的是掌握数字图像处理的基本概念和算法,并通过实际操作加深对图像处理原理的理解。
具体目标包括:1. 学习使用图像处理软件,如Photoshop或Matlab等。
2. 掌握图像增强的方法,如直方图均衡化、滤波和锐化等。
3. 理解图像压缩和编码的原理,如JPEG和PNG等格式。
4. 了解图像分割和边缘检测的基本算法,如阈值分割和Canny边缘检测等。
三、实验过程1. 图像增强图像增强是指通过一系列算法和技术,改善图像的质量和视觉效果。
在实验中,我们可以使用直方图均衡化算法来增强图像的对比度和亮度。
该算法通过将图像的像素值映射到一个更大的范围内,使得图像的亮度分布更加均匀。
2. 图像滤波图像滤波是指通过一系列滤波器对图像进行处理,以实现去噪、平滑和锐化等效果。
在实验中,我们可以使用平滑滤波器(如均值滤波器和高斯滤波器)来去除图像中的噪声。
同时,我们还可以使用锐化滤波器(如拉普拉斯滤波器和Sobel滤波器)来增强图像的边缘和细节。
3. 图像压缩和编码图像压缩是指通过减少图像的数据量来减小图像文件的大小,从而实现存储和传输的效率提升。
在实验中,我们可以使用JPEG和PNG等压缩算法来对图像进行压缩和编码。
JPEG算法通过对图像的频域进行离散余弦变换和量化,实现对图像的有损压缩。
而PNG算法则采用无损压缩的方式,通过对图像的差值编码和哈夫曼编码,实现对图像的高效压缩。
4. 图像分割和边缘检测图像分割是指将图像分成若干个区域,以实现对图像的目标提取和图像分析的目的。
而边缘检测是指通过检测图像中的边缘和轮廓,实现对图像的形状分析和目标识别。
《数字图像处理》实验报告
《数字图像处理》实验报告数字图像处理是计算机科学与技术领域中的一个重要分支,它涉及到对图像进行获取、处理、分析和显示等一系列操作。
在本次实验中,我们将学习和探索数字图像处理的基本概念和技术,并通过实验来加深对这些概念和技术的理解。
首先,我们需要了解数字图像的基本概念。
数字图像是由像素组成的二维矩阵,每个像素代表图像中的一个点,像素的灰度值或颜色值决定了该点的亮度或颜色。
在实验中,我们将使用灰度图像进行处理,其中每个像素的灰度值表示了该点的亮度。
在数字图像处理中,最基本的操作之一是图像的获取和显示。
我们可以通过摄像头或者从文件中读取图像数据,然后将其显示在计算机屏幕上。
通过这种方式,我们可以对图像进行观察和分析,为后续的处理操作做好准备。
接下来,我们将学习一些常见的图像处理操作。
其中之一是图像的灰度化处理。
通过将彩色图像转换为灰度图像,我们可以减少图像数据的维度,简化后续处理的复杂度。
灰度化处理的方法有多种,例如将彩色图像的RGB三个通道的像素值取平均值,或者使用加权平均值的方法来计算灰度值。
另一个常见的图像处理操作是图像的平滑处理。
图像平滑可以减少图像中的噪声,并使得图像更加清晰。
常用的图像平滑方法包括均值滤波和高斯滤波。
均值滤波通过计算像素周围邻域像素的平均值来平滑图像,而高斯滤波则使用一个高斯核函数来加权平均邻域像素的值。
除了平滑处理,图像的锐化处理也是数字图像处理中的一个重要操作。
图像的锐化可以增强图像的边缘和细节,使得图像更加清晰和鲜明。
常用的图像锐化方法包括拉普拉斯算子和Sobel算子。
这些算子通过计算像素周围邻域像素的差异来检测边缘,并增强边缘的灰度值。
此外,我们还将学习一些图像的变换操作。
其中之一是图像的缩放和旋转。
通过缩放操作,我们可以改变图像的尺寸,使其适应不同的显示设备或应用场景。
而旋转操作可以将图像按照一定的角度进行旋转,以达到某种特定的效果。
最后,我们将学习一些图像的特征提取和分析方法。
数字图像处理实验报告
数字图像处理实验报告数字图像处理实验报告第一章总论数字图像处理是计算机图形学、数字信号处理等学科交叉的一门学科。
它是基于数字计算机对图像信号进行数字处理的一种方法。
数字图像处理技术已广泛应用于医学影像诊断、遥感图像处理、图像识别、安防监控等领域,在当今社会中具有不可替代的重要作用。
本次实验主要介绍了数字图像处理的基本方法,包括图像采集、图像增强、图像恢复、图像分割、图像压缩等几个方面。
在实验过程中,我们采用了一些常用的数字图像处理方法,并通过 Matlab 图像处理工具箱进行实现和验证。
第二章实验过程2.1 图像采集在数字图像处理中,图像采集是一个重要的步骤。
采集到的图像质量直接影响到后续处理结果的准确性。
本次实验使用的图像是一张 TIF 格式的彩色图像,通过 Matlab 读取图像文件并显示,代码如下:```Matlabim = imread('test.tif');imshow(im);```执行代码后,可以得到如下图所示的图像:![image_1.png](./images/image_1.png)2.2 图像增强图像增强是指利用某些方法使图像具有更好的视觉效果或者变得更适合某种应用。
本次实验我们主要采用直方图均衡化、灰度变换等方法进行图像增强。
2.2.1 直方图均衡化直方图均衡化是一种常用的增强方法,它可以增加图像的对比度和亮度,使图像更加清晰。
代码实现如下:```Matlabim_eq = histeq(im);imshow(im_eq);```执行代码后,会得到直方图均衡化后的图像,如下图所示:![image_2.png](./images/image_2.png)可以看出,经过直方图均衡化处理后,图像的对比度和亮度得到了明显提高。
2.2.2 灰度变换灰度变换是一种用于调整图像灰度级别的方法。
通过变换某些像素的灰度级别,可以增强图像的视觉效果。
本次实验我们采用对数变换和幂函数变换两种方法进行灰度变换。
数字图像处理-实验报告
《数字图象处理》实验报告一、数字图像处理设计主要内容数字图象处理课程设计要求使学生掌握数字图像处理的基本算法的计算机实现,从而培养学生运用数字信号处理的原理解决生物医学、电子工程领域的实际问题的能力。
进一步提高程序设计及调试能力,初步掌握进行科学研究工作的主要步骤和方法,学习和掌握科学研究资料检索的方法,学习对已有资料进行消化总结的方法,学习撰写科学报告的基本方法。
二、前期工作1.查阅资料,对数字信号处理和图象处理基本理论和实践作一全面了解;2.根据实验内容和要求确定实验思路,熟悉Matlab语言,理解对数字信号处理进行计算机仿真原理;三、设计工作1.图像平滑a.利用二个低通邻域平均模板(3×3和9×9)对一幅图象进行平滑,验证模板尺寸对图象的模糊效果的影响。
b.利用一个低通模板对一幅有噪图象(GAUSS白噪声)进行滤波,检验两种滤波模板(分别使用一个5×5的线性邻域平均模板和一个非线性模板:3×5中值滤波器)对噪声的滤波效果。
c.选择一个经过低通滤波器滤波的模糊图象,利用sobel水平边缘增强高通滤波器(模板)对其进行高通滤波图象边缘增强,验证模板的滤波效果。
d.选择一幅灰度图象分别利用一阶Sobel算子和二阶Laplacian算子对其进行边缘检测,验证检测效果。
2.图像增强a.直方图均衡化增强图像对比度的MATLAB程序。
b.采用线性变换进行图像增强的MATLAB程序。
c.采用边界锐化算法增强图像的MATLAB程序。
四、程序设计1.利用二个低通邻域平均模板(3×3和9×9)对一幅图象进行平滑,验证模板尺寸对图象的模糊效果的影响。
程序如下:l=imread('E:/matlab/test1/sample.jpg');L=rgb2gray(l);subplot(1,3,1);imshow(L);title('原图');j=fspecial('average');j1=filter2(j,L)/255;subplot(1,3,2);imshow(j1);title('3*3 滤波');k=fspecial('average',9);k1=filter2(k,L)/255;subplot(1,3,3);imshow(k1);title('9*9 滤波');仿真结果如下图:原图3*3 滤波9*9 滤波2.利用一个低通模板对一幅有噪图象(GAUSS白噪声)进行滤波,检验两种滤波模板(分别使用一个5×5的线性邻域平均模板和一个非线性模板:3×5中值滤波器)对噪声的滤波效果。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数字图像处理实验报告实验二图像变换实验1.实验目的学会对图像进行傅立叶等变换,在频谱上对图像进行分析,增进对图像频域上的感性认识,并用图像变换进行压缩。
2.实验内容对Lena或cameraman图像进行傅立叶、离散余弦、哈达玛变换。
在频域,对比他们的变换后系数矩阵的频谱情况,进一步,通过逆变换观察不同变换下的图像重建质量情况。
3. 实验要求实验采用获取的图像,为灰度图像,该图像每象素由8比特表示。
具体要求如下:(1)输入图像采用实验1所获取的图像(Lena、Cameraman);(2)对图像进行傅立叶变换、获得变换后的系数矩阵;(3)将傅立叶变换后系数矩阵的频谱用图像输出,观察频谱;(4)通过设定门限,将系数矩阵中95%的(小值)系数置为0,对图像进行反变换,获得逆变换后图像;(5)观察逆变换后图像质量,并比较原始图像与逆变后的峰值信噪比(PSNR)。
(6)对输入图像进行离散余弦、哈达玛变换,重复步骤1-5;(7)比较三种变换的频谱情况、以及逆变换后图像的质量(PSNR)。
4. 实验结果1. DFT的源程序及结果J=imread('10021033.bmp');P=fft2(J);for i=0:size(P,1)-1for j=1:size(P,2)G(i*size(P,2)+j)=P(i+1,j);endendQ=sort(G);for i=1:size(Q,2)if (i<size(Q,2)*0.95 && i+1>=size(Q,2)*0.95)t=Q(i);endendG(abs(G)<t)=0;for n=0:size(P,1)-1for m=1:size(P,2)W(n+1,m)= G(n*size(P,2)+m);endendf2=ifft2(W);f3=uint8(f2);axes(handles.axes2);imshow(f3)axes(handles.axes1);imshow(J)psnr1=psnr(J,f3);set(handles.text3,'string',psnr1);2. DCT的源程序及结果J=imread('10021033.bmp');P=dct2(J);for i=0:size(P,1)-1for j=1:size(P,2)G(i*size(P,2)+j)=P(i+1,j);endendQ=sort(G);for i=1:size(Q,2)if (i<size(Q,2)*0.95 && i+1>=size(Q,2)*0.95)t=Q(i);endendG(abs(G)<t)=0;for n=0:size(P,1)-1for m=1:size(P,2)W(n+1,m)= G(n*size(P,2)+m);endendf2=idct2(W);f3=uint8(f2);axes(handles.axes2);imshow(f3)axes(handles.axes1);imshow(J)psnr1=psnr(J,f3);set(handles.text3,'string',psnr1);3.哈达玛变换的源程序及结果J=imread('cat.jpg');J=rgb2gray(J);P=hadamard(512)*(im2double(J))*hadamard(512);for i=0:size(P,1)-1for j=1:size(P,2)G(i*size(P,2)+j)=P(i+1,j);endendQ=sort(G);for i=1:size(Q,2)if (i<size(Q,2)*0.5 && i+1>=size(Q,2)*0.5)t=Q(i);endendG(abs(G)<t)=0;for n=0:size(P,1)-1for m=1:size(P,2)W(n+1,m)= G(n*size(P,2)+m);endendf2=inv(hadamard(512))*W*inv(hadamard(512));mm1=max(max(f2));mn1=min(min(f2));f2=255+255/(mm1-mn1)*(f2-mm1);f3=uint8(f2);axes(handles.axes2);imshow(f3)axes(handles.axes1);imshow(J)psnr1=psnr(J,f3);set(handles.text3,'string',psnr1);3实验三图像复原实验1.实验目的利用反向滤波和维纳滤波进行降质图像复原,比较不同参数选择对复原结果的影响。
2.实验内容(1)利用反向滤波方法进行图像复原;(2)利用维纳滤波方法进行图像复原。
3. 实验要求(1)输入图像采用实验1所获取的图像,对输入图像采用运动降质模型,如下式所示()()()(){},sin exp ,/2,/21,...,1,0,1,...,/21T H u v au bv j au bv au bv u v N N N πππ=+-+⎡⎤⎣⎦+=--+--与降值图像相关的参数是:5,1,1T a b ===;(2)对每一种方法通过计算复原出来的图像的峰值信噪比,进行最优参数的选择,包括反向滤波方法中进行复原的区域半径0r 、维纳方法中的噪声对信号的频谱密度比值K ;(3)将降质图像和利用最优参数恢复后的图像同时显示出来,以便比较。
4. 实验结果1.运动降质的源代码及结果I=imread('10021033.bmp');%I=rgb2gray(I);F=fft2(I);F=fftshift(F);for m=-((size(F ,1)+1)/2):(size(F ,1)+1)/2for n=-size(F ,2)/2:size(F ,2)/2H(m+((size(F ,1)+1)/2)+1,n+size(F ,2)/2+1)=5*sin(pi*(m+n))*exp(-sqrt(-1)*pi*(m+n))/(pi*(m+n));endendfor m=1:size(F ,1)for n=1:size(F ,2)if (isnan(real(H(m,n))))G(m,n)=F(m,n);H(m,n)=1;elseG(m,n)=F(m,n)*H(m,n);endendendg=ifft2(G);t1=abs(g);mm=max(max(t1));mn=min(min(t1));t1=255+255/(mm-mn)*(t1-mm);t=uint8(t1);axes(handles.axes1);imshow(t)2.逆滤波的源代码及结果I=imread('10021033.bmp');F=fft2(I);F=fftshift(F);for m=-((size(F,1)+1)/2):(size(F,1)+1)/2for n=-size(F,2)/2:size(F,2)/2H(m+((size(F,1)+1)/2)+1,n+size(F,2)/2+1)=5*sin(pi*(m+n))*exp(-sqrt(-1)*pi*(m+n))/( pi*(m+n));endendfor m=1:size(F,1)for n=1:size(F,2)if (isnan(real(H(m,n))))G(m,n)=F(m,n);H(m,n)=1;elseG(m,n)=F(m,n)*H(m,n);endendendfor m=1:size(F,1)for n=1:size(F,2)if(m^2+n^2<200000)F1(m,n)=G(m,n)/H(m,n);elseF1(m,n)=G(m,n);endendendf1=ifft2(F1);f2=abs(f1);mm=max(max(f2));mn=min(min(f2));f2=255+255/(mm-mn)*(f2-mm);f2=uint8(f2);psnr1=psnr(f2,I);set(handles.text5,'string',psnr1);axes(handles.axes2);imshow(f2)3.维纳滤波的源代码及结果I=imread('10021033.bmp');F=fft2(I);F=fftshift(F);for m=-((size(F,1)+1)/2):(size(F,1)+1)/2for n=-size(F,2)/2:size(F,2)/2H(m+((size(F,1)+1)/2)+1,n+size(F,2)/2+1)=5*sin(pi*(m+n))*exp(-sqrt(-1)*pi*(m+n))/( pi*(m+n));endendfor m=1:size(F,1)for n=1:size(F,2)if (isnan(real(H(m,n))))G(m,n)=F(m,n);H(m,n)=1;elseG(m,n)=F(m,n)*H(m,n);endendendfor i=1:size(F,1)for j=1:size(F,2)ff2(i,j)=G(i,j)/H(i,j)*(abs(H(i,j))^2)/(abs(H(i,j))^2+10^-38);endendf3=ifft2(ff2);f4=abs(f3);mm1=max(max(f4));mn1=min(min(f4));f4=255+255/(mm1-mn1)*(f4-mm1);f4=uint8(f4);psnr2=psnr(f4,I);set(handles.text5,'string',psnr2);axes(handles.axes2);imshow(f4)实验四图像分割处理实验1.实验目的(1)了解图像分割的基本原理,并利用图像分割算法进行图像分割处理;(2)掌握数学形态学的基本运算。
2.实验内容(1)利用类间方差阈值算法实现图像的分割处理;(2)利用形态学处理进行处理结果修正。
3. 实验要求(1)实验用图如图4.2所示;图4.2 原始图像(2)对输入图像进行平滑处理,以减小噪声对分割处理的影响;(3)利用类间方差阈值算法对滤波处理后图像进行分割处理,获取分割图像;(4)利用数学形态学中的腐蚀和膨胀运算处理,剔除分割处理结果中的一些细小的残余误分割点,在进行腐蚀和膨胀运算时可采用半径为r的圆形结构元素,注意比较选取不同r值时的处理结果。