数字图像实验报告

合集下载

数字图像处理实验报告——图像分割实验

数字图像处理实验报告——图像分割实验

实验报告课程名称数字图像处理导论专业班级_______________姓名 _______________学号_______________电气与信息学院与谐勤奋求就是创新一.实验目得1.理解图像分割得基本概念;2.理解图像边缘提取得基本概念;3.掌握进行边缘提取得基本方法;4.掌握用阈值法进行图像分割得基本方法.二。

实验内容1.分别用Roberts,Sobel与拉普拉斯高斯算子对图像进行边缘检测。

比较三种算子处理得不同之处;2.设计一个检测图1中边缘得程序,要求结果类似图2,并附原理说明。

3.任选一种阈值法进行图像分割、图1 图2三.实验具体实现1.分别用Roberts,Sobel与拉普拉斯高斯算子对图像进行边缘检测。

比较三种算子处理得不同之处;I=imread(’mri、tif');imshow(I)BW1=edge(I,’roberts’);figure ,imshow(BW1),title(’用Roberts算子’)BW2=edge(I,’sobel’);figure,imshow(BW2),title(’用Sobel算子 ')BW3=edge(I,’log’);figure,imshow(BW3),title(’用拉普拉斯高斯算子’)比较提取边缘得效果可以瞧出,sober算子就是一种微分算子,对边缘得定位较精确,但就是会漏去一些边缘细节.而Laplacian—Gaussian算子就是一种二阶边缘检测方法,它通过寻找图象灰度值中二阶过零点来检测边缘并将边缘提取出来,边缘得细节比较丰富。

通过比较可以瞧出Laplacian-Gaussian算子比sober算子边缘更完整,效果更好。

2.设计一个检测图1中边缘得程序,要求结果类似图2,并附原理说明.i=imread('m83、tif’);subplot(1,2,1);imhist(i);title('原始图像直方图');thread=130/255;subplot(1,2,2);i3=im2bw(i,thread);imshow(i3);title('分割结果’);3.任选一种阈值法进行图像分割、i=imread('trees、tif’);subplot(1,2,1);imhist(i);title('原始图像直方图’);thread=100/255;subplot(1,2,2);i3=im2bw(i,thread);imshow(i3);title('分割结果’)1、分别用Roberts,Sobel与拉普拉斯高斯算子对图像进行边缘检测。

数字图像处理四个实验报告,带有源程序

数字图像处理四个实验报告,带有源程序

数字图像处理实验指导书学院:通信与电子工程学院专业:电子信息工程班级:学号:姓名:XX理工大学实验一 MATLAB数字图像处理初步一、实验目的与要求1.熟悉及掌握在MATLAB中能够处理哪些格式图像。

2.熟练掌握在MATLAB中如何读取图像。

3.掌握如何利用MATLAB来获取图像的大小、颜色、高度、宽度等等相关信息。

4.掌握如何在MATLAB中按照指定要求存储一幅图像的方法。

5.图像间如何转化。

二、实验原理及知识点1、数字图像的表示和类别一幅图像可以被定义为一个二维函数f(x,y),其中x和y是空间(平面)坐标,f 在任何坐标处(x,y)处的振幅称为图像在该点的亮度。

灰度是用来表示黑白图像亮度的一个术语,而彩色图像是由单个二维图像组合形成的。

例如,在RGB彩色系统中,一幅彩色图像是由三幅独立的分量图像(红、绿、蓝)组成的。

因此,许多为黑白图像处理开发的技术适用于彩色图像处理,方法是分别处理三副独立的分量图像即可。

图像关于x和y坐标以及振幅连续。

要将这样的一幅图像转化为数字形式,就要求数字化坐标和振幅。

将坐标值数字化成为取样;将振幅数字化成为量化。

采样和量化的过程如图1所示。

因此,当f的x、y分量和振幅都是有限且离散的量时,称该图像为数字图像。

作为MATLAB基本数据类型的数值数组本身十分适于表达图像,矩阵的元素和图像的像素之间有着十分自然的对应关系。

图1 图像的采样和量化根据图像数据矩阵解释方法的不同,MA TLAB把其处理为4类:亮度图像(Intensity images)二值图像(Binary images)索引图像(Indexed images)RGB图像(RGB images)(1) 亮度图像一幅亮度图像是一个数据矩阵,其归一化的取值表示亮度。

若亮度图像的像素都是uint8类或uint16类,则它们的整数值范围分别是[0,255]和[0,65536]。

若图像是double类,则像素取值就是浮点数。

数字图像处理实验报告

数字图像处理实验报告

数字图像处理实验报告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);实验结论通过本次实验,我已经能够理解数字图像处理的基本概念与原理,掌握数字图像处理的基本方法,熟练应用数字图像处理软件进行图像处理。

数字图像实验报告

数字图像实验报告

五、实验过程原始记录(数据、图表、计算等)原始图像camera.jpg lenna.jpgrose.jpg在Matlab中输入以下语句。

I=imread('E:\tupian\rose.tif');whos(I)imshow(I)imwrite(I,'Rose.jpg','quality',10)imfinfo('Rose.jpg')imwrite(I,'Rose.bmp')A=imread('E:\tupian\lenna.jpg');B=imread('E:\tupian\camera.jpg');imfinfo('lenna.jpg')imfinfo('camera.jpg')figure;imshow(A)figure;imshow(B)C=imread('E:\tupian\camera.jpg');C1=im2bw(C);imshow(C1)六、实验结果及分析通过whos I查看图像信息。

二值化后图片转化成黑白图片,即灰度值小于等于127时赋值为0,灰度值大于127时赋值为1。

五、实验过程原始记录(数据、图表、计算等)原始图像在Matlab中输入以下语句。

A=imread('E:\tupian\lianhua.jpg');B=imread('E:\tupian\add1.jpg');C=imadd(A,B);imshow(C)A=imread('E:\tupian\camera.jpg');A1=imadd(A,50);A2=imadd(A,-50); %同imsubtract(A,50)subplot(131);imshow(A);title('原图')subplot(132);imshow(A1);title('+50')subplot(133);imshow(A2);title('-50')A=imread('E:\tupian\camera.jpg');background=imopen(A,strel('disk',50));Ip=imsubtract(A,background);subplot(121);imshow(A);subplot(122);imshow(Ip);I=imread('E:\tupian\house.jpg');J=immultiply(I,1.5);subplot(121);imshow(I);subplot(122);imshow(J);A=imread('E:\tupian\camera.jpg');A=rgb2gray(A);I=double(A);J= I*0.43+90;A1=uint8(J);Ip=imdivide(A,A1);imshow(Ip,[])六、实验结果及分析1.叠加后的图像2. 减去背景后的图像4.乘以1.5后的结果六、实验结果及分析1. 绘制图像直方图2. 图像的明暗转换3. 图像的对数变换由图可以看出,图片对数变换后显示更多的内容,即对低频进行拉伸,对高频进行压缩。

数字图像处理实验报告

数字图像处理实验报告

数字图像处理实验报告数字图像处理实验报告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等高级语言编写数字图像处理的一些基本算法程序,来巩固和掌握图像处理技术的基本技能,提高实际动手能力,并通过实际编程了解图像处理软件的实现的基本原理。

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

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

数字图像处理实验报告图像处理数字图像处理实验报告实验报告书实验类别数字图像处理学院信息工程学院专业通信工程班级通信1005班姓名叶伟超指导教师聂明新2013 年 6 月 3 日篇二:数字图像处理实验报告数字图像处理实验报告课程:班级:学号:姓名:指导老师:日期:实验一内容一MATLAB数字图像处理初步一、实验目的与要求1.熟悉及掌握在MATLAB中能够处理哪些格式图像。

2.熟练掌握在MATLAB中如何读取图像。

3.掌握如何利用MATLAB来获取图像的大小、颜色、高度、宽度等等相关信息。

4.掌握如何在MATLAB中按照指定要求存储一幅图像的方法。

5.图像间如何转化。

二、实验内容及步骤1.利用imread( )函数读取一幅图像,假设其名为flower.tif,存入一个数组中;解:读取图像,存入数组I中:I = imread('flower.tif');2.利用whos 命令提取该读入图像flower.tif的基本信息;解:查询数组I的信息:3.利用imshow()函数来显示这幅图像;解:因为imshow()方法不能直接显示tif图像矩阵,因此要先转换成RGB模式,再调用imshow()显示。

代码如下:I1 = I(:,:,1);I2 = I(:,:,2);I3 = I(:,:,3);RGB = cat(3,I1,I2,I3);imshow(RGB);显示的图像为:4.利用imfinfo函数来获取图像文件的压缩,颜色等等其他的详细信息;解:代码如下:imfinfo('flower.tif')结果截图:5.利用imwrite()函数来压缩这幅图象,将其保存为一幅压缩了像素的jpg文件,设为flower.jpg;语法:imwrite(原图像,新图像,‘quality’,q), q取0-100。

解:代码:imwrite(RGB,'flower.jpg','quality',80);结果截图:6.同样利用imwrite()函数将最初读入的tif图象另存为一幅bmp 图像,设为flower.bmp。

数字图像处理实验报告(五个实验全)

数字图像处理实验报告(五个实验全)

数字图像处理实验报告(五个实验全)实验⼀ Matlab图像⼯具的使⽤1、读图I=imread('lena.jpg');imshow(I);2、读⼊⼀幅RGB图像,变换为灰度图像和⼆值图像,并在同⼀个窗⼝内分成三个⼦窗⼝来分别显⽰RGB图像和灰度图像。

a=imread('lena.jpg')i = rgb2gray(a)I = im2bw(a,0.5)subplot(3,1,1);imshow(a);subplot(3,1,2);imshow(i);subplot(3,1,3);imshow(I);原图像灰度图像⼆值图像实验⼆图像变换1、对⼀幅图像进⾏平移,显⽰原始图像与处理后图像,分别对其进⾏傅⾥叶变换,显⽰变换后结果,分析原图的傅⾥叶谱与平移后傅⾥叶频谱的对应关系。

s=imread('beauty.jpg');i=rgb2gray(s)i=double(i)j=fft2(i);k=fftshift(j); 原图像原图的傅⾥叶频谱l=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);l=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);subplot(2,2,2);imshow(uint8(b));subplot(2,2,3);imshow(A);subplot(2,2,4);imshow(B);2、对⼀幅图像进⾏旋转,显⽰原始图像与处理后图像,分别对其进⾏傅⾥叶变换,显⽰变换后结果,分析原图的傅⾥叶谱与旋转后傅⾥叶频谱的对应关系。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

五、实验过程原始记录(数据、图表、计算等)原始图像camera.jpg lenna.jpgrose.jpg在Matlab中输入以下语句。

I=imread('E:\tupian\rose.tif');whos(I)imshow(I)imwrite(I,'Rose.jpg','quality',10)imfinfo('Rose.jpg')imwrite(I,'Rose.bmp')A=imread('E:\tupian\lenna.jpg');B=imread('E:\tupian\camera.jpg');imfinfo('lenna.jpg')imfinfo('camera.jpg')figure;imshow(A)figure;imshow(B)C=imread('E:\tupian\camera.jpg');C1=im2bw(C);imshow(C1)六、实验结果及分析通过whos I查看图像信息。

二值化后图片转化成黑白图片,即灰度值小于等于127时赋值为0,灰度值大于127时赋值为1。

五、实验过程原始记录(数据、图表、计算等)原始图像在Matlab中输入以下语句。

A=imread('E:\tupian\lianhua.jpg');B=imread('E:\tupian\add1.jpg');C=imadd(A,B);imshow(C)A=imread('E:\tupian\camera.jpg');A1=imadd(A,50);A2=imadd(A,-50); %同imsubtract(A,50)subplot(131);imshow(A);title('原图')subplot(132);imshow(A1);title('+50')subplot(133);imshow(A2);title('-50')A=imread('E:\tupian\camera.jpg');background=imopen(A,strel('disk',50));Ip=imsubtract(A,background);subplot(121);imshow(A);subplot(122);imshow(Ip);I=imread('E:\tupian\house.jpg');J=immultiply(I,1.5);subplot(121);imshow(I);subplot(122);imshow(J);A=imread('E:\tupian\camera.jpg');A=rgb2gray(A);I=double(A);J= I*0.43+90;A1=uint8(J);Ip=imdivide(A,A1);imshow(Ip,[])六、实验结果及分析1.叠加后的图像2. 减去背景后的图像4.乘以1.5后的结果六、实验结果及分析1. 绘制图像直方图2. 图像的明暗转换3. 图像的对数变换由图可以看出,图片对数变换后显示更多的内容,即对低频进行拉伸,对高频进行压缩。

五、实验过程原始记录(数据、图表、计算等)原始图像直方图均衡化的Matlab程序如下:I=imread('E:\tupian\pollen.jpg'); %读入原图像I=rgb2gray(I); %RGB图像转换为灰度图像J=histeq(I); %对原图像进行直方图均衡化处理subplot(121);imshow(I); %显示原图像title('原图像'); %给原图像加标题名subplot(122);imshow(J); %显示直方图均衡化后的图像title('直方图均衡化后的图像'); %给直方图均衡化后的图像加标题名figure;subplot(121);imhist(I,64); %将原图像直方图显示为64级灰度title('原图像直方图'); %给原图像直方图加标题名subplot(122);imhist(J,64); %将均衡化后直方图显示为64级灰度title('均衡变换后的直方图'); %给均衡化后图像直方图加标题名六、实验结果及分析1. 图像的直方图均衡化2. 原图像及其直方图均衡化后图像的直方图实验可知:直方图是反映的是图像的灰度值的分布情况。

直方图均衡化是通过灰度级变换将一幅图像转换为另一幅具有均衡直方图的图像,即在每个灰度级上都具有相同像素点数的过程。

直方图均衡化的用途是使图像在整个灰度值动态变化范围内的分布均匀化,改善图像的亮度分布状态,增强图像的视觉效果。

六、实验结果及分析1. 高斯噪声处理(1). 原图像(左)及其添加高斯噪声的图像(右)(2). 3×3均值滤波(左)及5×5均值滤波(右)(3). 3×3中值滤波(左)及5×5中值滤波(右)2. 椒盐噪声处理(1)原图像添加椒盐噪声(2)3×3均值滤波(左)及5×5均值滤波(右)(3)3×3中值滤波(左)及5×5中值滤波(右)通过对高斯噪声和椒盐噪声的滤波实验可以看出:对于高斯噪声,选用均值滤波器效果比较好;对于椒盐噪声,中值滤波效果比较好。

对于滤波窗口的大小,无论是对高斯噪声还是对椒盐噪声,选用5*5窗口滤波效果好于3*3窗口滤波,但图像模糊程度加重。

五、实验过程原始记录(数据、图表、计算等)原始图像利用Matlab实现频域滤波的程序:I=imread('E:\tupian\number.jpg'); %图像内容读入I=rgb2gray(I); %RGB图像转换为灰度图像fftI=fft2(I); %Fourier变换sfftI=fftshift(fftI); %幅度谱迁移,移至图像中心RR=real(sfftI); %取实部II=imag(sfftI); %取虚部A=sqrt(RR.^2+II.^2); %计算幅度A=(A-min(min(A)))/(max(max(A))-min(min(A)))*225; %归一化figureimshow(A)六、实验结果及分析实验结果如图一、实验目的1.掌握怎样利用傅立叶变换进行频域滤波。

2.掌握频域滤波的概念及方法。

3.熟练掌握频域空间的各类滤波器。

4.利用MATLAB程序进行频域滤波。

二、实验原理频域滤波分为低通滤波和高通滤波两类,对应的滤波器分别为低通滤波器和高通滤波器。

频域低通过滤的基本思想:G(u,v)=F(u,v)H(u,v)F(u,v)是需要钝化图像的傅立叶变换形式,H(u,v)是选取的一个低通过滤器变换函数,G(u,v)是通过H(u,v)减少F(u,v)的高频部分来得到的结果,运用傅立叶逆变换得到钝化后的图像。

理想地通滤波器(ILPF)具有传递函数:其中,D0为指定的非负数,D(x,y)为(u,v)到滤波器的中心的距离。

与理想地通滤波器不同的是,巴特沃兹率通滤波器的传递函数并不是在Do处突然不连续。

相应的高通滤波器也包括:理想高通滤波器、n阶巴特沃兹高通滤波器、高斯高通滤波器。

给定一个低通滤波器的传递函数,通过使用如下的简单关系,可以获得相应高通滤波器的传递函数。

五、实验过程原始记录(数据、图表、计算等)原始图像f=imread('E:\tupian\house.jpg');F=fft2(f); % 对图像进行傅立叶变换S=fftshift(log(1+abs(F)));%对变换后图像进行队数变化,并对其坐标平移,使其中心化S=gscale(S); %将频谱图像标度在0-256的范围内imshow(S) %显示频谱图像h=fspecial('sobel'); %产生空间‘sobel’模版freqz2(h); %查看相应频域滤波器的图像PQ=paddedsize(size(f)); %产生滤波时所需大小的矩阵H=freqz2(h,PQ(1),PQ(2)); %产生频域中的‘sobel’滤波器H1=ifftshift(H); %重排数据序列,使得原点位于频率矩阵的左上角imshow(abs(H),[]) %以图形形式显示滤波器figure,imshow(abs(H1),[])gs=imfilter(double(f),h); %用模版h进行空域滤波gf=dftfilt(f,H1); %用滤波器对图像进行频域滤波figure,imshow(gs,[])figure,imshow(gf,[])figure,imshow(abs(gs),[])figure,imshow(abs(gf),[])f=imread(' E:\tupian\number.jpg');%读取图片PQ=paddedsize(size(f)); %产生滤波时所需大小的矩阵D0=0.05*PQ(1); %设定高斯高通滤波器的阈值H=hpfilter('gaussian',PQ(1),PQ(2),D0);%产生高斯高通滤波器g=dftfilt(f,H); %对图像进行滤波figure,imshow(f) %显示原图像figure,imshow(g,[]) %显示滤波后图像六、实验结果1. 图像house的频域傅里叶频谱2. 空域滤波与频域滤波的对比图a为在空间域使用垂直Sobel掩膜对图像滤波后的结果3. 高通滤波在频域中分析图像的频域成分与图像的视觉效果间的对应关系比较直观。

在空间域比较难以表达和分析的图像增强任务可以在频域中分析。

由于频域滤波的方式可以对图像进行低通和高通滤波进行处理,低通滤波是要保留图像中的低频分量而除去高频分量,由于图像中的边缘和噪声都对应图像傅里叶频谱中的高频部分,所以低通滤波可以去除或减弱噪声的影响并模糊边缘轮廓;高通滤波是要保留图像中的高频分量而除去低频分量,因此高通滤波可以保留较多的边缘轮廓信息。

五、实验过程原始记录(数据、图表、计算等)原始图像Matlab程序如下:rgb_image=imread('E:\tupian\flower.jpg');fR=rgb_image(:,:,1);fG=rgb_image(:,:,2);fB=rgb_image(:,:,3);figure(1);imshow(fR);figure(2);imshow(fG);figure(3);imshow(fB);yiq_image=rgb2ntsc(rgb_image);fY=yiq_image(:,:,1);fI=yiq_image(:,:,2);fQ=yiq_image(:,:,3);figure(4),imshow(fY);figure(5),imshow(fI);figure(6),imshow(fQ);fR=histeq(fR,256);fG=histeq(fG,256);fB=histeq(fB,256);RGB_image=cat(3,fR,fG,fB);figure(7),imshow(RGB_image);六、实验结果及分析六、实验结果及分析1.使用Roberts 算子的图像分割结果2.使用Prewitt算子的图像分割结果3.使用sobel算子的图像分割结果4.使用log算子的图像分割结果Robert算子检测出的图像轮廓边缘很细,连续性较差,边缘信息有一定丢失,出现的噪点比较多。

相关文档
最新文档