图像处理实验4
图像处理实验报告

图像处理实验报告图像处理实验报告一、引言图像处理是计算机科学与工程领域的一个重要研究方向,它涉及到对数字图像进行获取、处理、分析和显示等一系列操作。
本实验旨在通过使用图像处理技术,对一幅给定的数字图像进行处理和分析,以探索图像处理的原理和应用。
二、实验目的本实验有以下几个目的:1. 理解图像处理的基本概念和原理;2. 掌握图像处理的常用技术和方法;3. 熟悉图像处理软件的使用。
三、实验步骤1. 图像获取在本实验中,我们选择了一张风景图作为实验对象。
该图像是通过数码相机拍摄得到的,保存在计算机中的文件格式为JPEG。
我们使用图像处理软件将该图像导入到程序中,以便进行后续的处理和分析。
2. 图像预处理在进行图像处理之前,我们需要对图像进行预处理。
预处理的目的是去除图像中的噪声、平滑图像的边缘等。
我们使用了均值滤波和中值滤波两种常用的图像平滑方法。
通过对比两种方法的效果,我们可以选择合适的方法来进行图像预处理。
3. 图像增强图像增强是指通过一系列的操作,使得图像在视觉上更加鲜明、清晰、易于观察。
在本实验中,我们使用了直方图均衡化和灰度拉伸两种图像增强方法。
直方图均衡化通过对图像的像素值进行变换,使得图像的直方图更加均匀,从而增强图像的对比度。
灰度拉伸则是通过对图像的像素值进行线性变换,将图像的灰度范围拉伸到更广的范围内,从而增强图像的细节。
4. 图像分割图像分割是将图像分成若干个互不重叠的区域,每个区域具有一定的意义和特征。
在本实验中,我们使用了阈值分割和边缘检测两种图像分割方法。
阈值分割是指通过设置一个合适的阈值,将图像中的像素分为两个类别。
边缘检测则是通过检测图像中的边缘信息,将图像分割为不同的区域。
5. 图像特征提取图像特征提取是指从图像中提取出具有一定意义和特征的信息。
在本实验中,我们选择了纹理特征和颜色特征两种常用的图像特征提取方法。
纹理特征提取通过对图像的纹理进行分析,提取出图像的纹理特征。
图像处理实验心得体会(4篇)

图像处理实验心得体会(4篇)此次学校组织高中英语教师听课学习活动,我作为高一的英语教师,在这一行人之中,在参与了这次活动,我受益许多,从其他教师那学到许多不同的英语的教学方法,所以就谈一下我的听课学习体会。
我一共去了两堂英语课的听课学习,第一堂是我高一年级很受欢送的英语教师的课,在这节课中,从这位教师那体会到,教英语不能只限于书中的内容,还要给学生们扩展学习内容。
这个教师给我演示了在课堂中与学生的互动是有必要的。
我记得我教英语的时候,就是简洁的问个问题,让学生们答复就行里面,就只追求答案,不求题目的解答过程。
这一比照,才发觉我教学时有这么多的缺点。
再有李教师跟我们说,与学生必需要进展互动,而且还是剧烈的互动,不然学生们只是知道答案,但是不知道问题的最终要点在哪,这是不行的。
从她的一个上课中,我知道了在与学生进展问答环节时,我必需要让学生自己去查找问题中蕴含的学问点,并且还要让他们自己进展解题,这样才是最好的学习方式,会让他们在解题过程中就把学问点学会,是很大的获利的。
我从这个教师这里学到了这一个阅历,以后我也会加强这方面的教学。
其次堂英语课是高三教师上的,我进去听了一场,我才发觉我上课有许多局限,我总是在课上把自己当主体,总是用自己的思维去教英语,没有想到让学生成为主体,他们才能够在上课的时候发挥自己的最大学习力量,这是我没有想到的,果真还是阅历太少了的原因。
在这高三课堂上,这个高三的英语教师是有着十几年的英语一个教学阅历的。
她在课上给我们展现了什么叫学生自主学生英语的情形。
高三由于有了高一和高二英语的根底,所以在上高三英语课时,教师是完全信任他们自己的,已经开头把课堂教给他们自己了,在加上也是很重要的一个阶段了,所以教师在这上面就是起到指导作用,大局部还是需要他们自己去领悟了。
因此课堂都是学生自己教学,相互作为教师学习。
我觉得这是一个很好的方法,不仅可以让学生提高学习兴趣,也让他们在一教多学中学习对方的学问,形成了互补的作用。
图像处理实验(研究生)

实验一:图像文件类型转换实验目的:理解数字图像文件的几种根本类型掌握在MATLAB中进行图象文件类型转换的方法观察图象转换前后的效果加深对图象文件类型的理解熟悉图象格式、颜色系统间的转换实验内容:1〕灰度图像与索引图像的相互转换2〕RGB图像与索引图像的相互转换3〕将图像转换为二值化图像实验方法:利用MATLAB工具进行实验实验前预习要求:1〕理解灰度图像、索引图像、RGB图像、二值图像的概念2〕明确区分以上四种图像的存储方式及其各自特点3) 掌握imread、imshow、imwrite、colorbar等根本语句的应用4〕预习gray2ind、ind2gray、rgb2ind、ind2rgb、im2bw等语句的使用方法一、灰度图像到索引图像的转换启动MATLAB,新建一个自己的工作文件夹〔如下列图中的“MYFIG〞〕。
并把它设置在当前的工作路径〔Current Directory〕下。
1)在该文件夹中拷入个灰度图片,比方“2.jpg〞文件。
2)在MATLAB命令输入窗中,调用函数info=imfinfo('2.jpg')观查2.jpg是否为灰度图像在ColorType: 'grayscale' 属性行如此显示,那么说明以2.jpg命名的文件为灰度图像。
3)输入如下命令完成转换RGB=imread('2.jpg'); % 将图像“2.jpg〞的数据赋给变量RGBfigure(3); % 设定显示窗口3imshow(RGB); % 显示原“2.jpg〞文件figure(1); % 设定显示窗口1[RGB1,map1]=gray2ind(RGB,128); % 指定灰度级128,进行灰度图像到索引图像转换imshow(RGB1,map1) ; % 显示索引图像1figure(2); % 设定显示窗口2[RGB2,map2]=gray2ind(RGB,16); % 指定灰度级16,进行灰度图像到索引图像转换imshow(RGB2,map2) ; % 显示索引图像2imwrite(RGB1,map1,'3.bmp'); % 将索引图像1保存为名为“3.bmp〞的文件imwrite(RGB2,map2,'4.bmp'); % 将索引图像2 保存为名为“4.bmp〞的文件运行并观察结果和现象,将结果图打印出来,分析说明不同的灰度值对图片的影响并加以理论说明。
数字图像处理四个实验报告,带有源程序

数字图像处理实验指导书学院:通信与电子工程学院专业:电子信息工程班级:学号:姓名: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编程语言和相关库实现了图像的读取、显示、灰度化、二值化、平滑处理、边缘检测和直方图均衡化等操作。
图像处理实验报告

图像处理实验报告实验⼀基于matlab 的⼈脸识别技术⼀、实验⽬的1.熟悉⼈脸识别的⼀般流程与常见识别⽅法;2.熟悉不同的特征提取⽅法在⼈脸识别的应⽤;3.了解在实际的⼈脸识别中,学习样本数等参数对识别率的影响;4.了解⾮⼈脸学习样本库的构建在⼈脸识别的重要作⽤。
使⽤MATLAB 平台编程,采⽤K-L 变换、特征提取及图像处理技术,实现⼈脸识别⼆、实验内容与实验仪器、设备1.构建⾮⼈脸学习样本库;2.观测不同的特征提取⽅法对⼈脸识别率的影响;3.观测不同的学习样本数对⼈脸识别率的影响;1. PC 机-系统最低配置 512M 内存、P4 CPU ;2. Matlab 仿真软件- 7.0 / 7.1 / 2006a 等版本的Matlab 软件。
3. CBCL ⼈脸样本库三、实验原理1.⼈脸特征提取的算法通过判别图像中所有可能区域是否属于“⼈脸模式”的⽅法来实现⼈脸检测。
这类⽅法有:特征脸法、⼈⼯神经⽹络法、⽀持向量机法;积分图像法。
本次使⽤的是PCA(主成分分析法)其原理是:利⽤K-L 变换抽取⼈脸的主要成分,构成特征脸空间,识别时将测试图像投影到此空间,得到⼀组投影系数,通过与各个⼈脸图像⽐较进⾏识别。
对于⼀幅M*N 的⼈脸图像,将其每列相连构成⼀个⼤⼩为D=M*N 维的列向量。
D 就是⼈脸图像的维数,即是图像空间的维数。
设n 是训练样本的数⽬;X j 表⽰第j 幅⼈脸图像形成的⼈脸向量,则所需样本的协⽅差矩阵为:1()()m Ti i i S x u x u ==--∑ (1)其中U 为训练样本的平均图像向量:11mi i u x n ==∑ (2)令A=[x 1-u,x 2-u,...x n -u],则有S r =AA T ,其维数为D ×D 。
根据K-L 变换原理,需要求得的新坐标系由矩阵AA T 的⾮零特征值所对应的特征向量组成。
直接计算的计算量⽐较⼤,所以采⽤奇异值分解(SVD)定理,通过求解A T A 的特征值和特征向量来获得AA T 的特征值和特征向量。
数字图像处理实验报告

目录实验一:数字图像的基本处理操作 (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()等函数。
图像处理实验报告

数字图像处理实验报告姓名:学号:专业:[2015.6.25]一、彩色图BMP图像转灰度图1.实验要求打开一幅*.bmp图像, 并将彩色图像变灰度图像, 并读取图像数据。
2.实验内容(1)一般BMP图像的结构一般的bmp文件的结构可分为三部分: 表头、调色板和图像数据。
①BMP文件头(14字节) ,文件的第0字节到第13字节为BMP图像的文件头。
BMP文件头数据结构含有BMP文件的类型、文件大小和位图起始位置等信息。
其结构定义如下:Typedef struct tagBITMAPFILEHEADER {WORD bfType; // 位图文件的类型, 必须为BM(0-1字节)DWORD bfSize; // 位图文件的大小, 以字节为单位(2-5字节)WORD bfReserved1; // 位图文件保留字, 必须为0(6-7字节)WORD bfReserved2; // 位图文件保留字, 必须为0(8-9字节)DWORD bfOffBits; //位图阵列的偏移量, (10-13字节)// 位图阵列的偏移量, 以字节为单位, 说明从文件头开始到实际图像数据之间的字节偏移量} BITMAPFILEHEADER;②BMP信息头位图信息头(40字节), 文件的第14个字节到第53个字节为BMP图像的信息头, 位图信息头数据用于说明位图的尺寸等信息。
typedef struct tagBITMAPINFOHEADER{DWORD biSize; // 本结构所占用字节数(14-17字节)LONG biWidth; // 位图的宽度, 以像素为单位(18-21字节)LONG biHeight; // 位图的高度, 以像素为单位(22-25字节)WORD biPlanes; // 目标设备的级别, 值为1(26-27字节)WORD biBitCount; // 每个像素所需的位数, 必须是1(双色), 4(16色), 8(256色)或24(真彩色)之一(28-29字节)DWORD biCompression; // 位图压缩类型, 必须是0(不压缩), 1(BI_RLE8压缩类型)或2(BI_RLE4压缩类型)之一(30-33字节)DWORD biSizeImage; // 位图的大小, 以字节为单位(34-37字节)LONG biXPelsPerMeter; // 位图水平分辨率, 每米像素数(38-41字节)LONG biYPelsPerMeter; // 位图垂直分辨率, 每米像素数(42-45字节)DWORD biClrUsed; // 位图实际使用的颜色表中的颜色数(46-49字节)DWORD biClrImportant; // 位图显示过程中重要的颜色数(50-53字节)} BITMAPINFOHEADER;③调色板调色板用于说明位图中的颜色, 它有若干个表项, 每一个表项是一个RGBQUAD类型的结构, 定义一种颜色。
实验4 遥感图像的增强处理

实验4 遥感图像的增强处理1 实验的目的和任务1)理解遥感图像的增强处理的方法和原理;2)理解遥感图像彩色合成的原理,掌握遥感图像彩色合成的方法;3)掌握遥感图像的增强处理,包括对比度变换(直方图)、空间滤波、HLS变换、多光谱变换(K-L变换,即主成分分析,PCA;K-T变换,即缨帽变换)。
2 实验设备与数据:设备:遥感图像处理系统ENVI数据:焦作2004年3-7和4-8数据或者用软件自带数据3 实验内容与步骤:1)图像的彩色合成:真彩色是用3、2、1波段进行叠加合成,除真彩色之外都是假彩色,其中4、3、2波段合成标准假彩色。
真彩色:3、2、1波段合成假彩色:除真彩色之外都是假彩色,这里用3、4、5波段,可以发现,真彩色的遥感影像和实际地物地貌相一致,假彩色的图像和实际地物地貌不相一致。
因为传感器的获取的影像种类远多于人眼视觉,所以使用假彩色使人类看到看不见的辐射、或者突出某种特征,假彩色种类很多很灵活。
标准假彩色4、3、2真彩色和假彩色对比图2)直方图均衡化打开主影像窗口的enhance,如下图,用鼠标调整不同的波段范围,点击应用,可以更改颜色的表现方式可以看到,直方图均衡化后图像清晰度上升3)利用ENVI主菜单的transform菜单下的color transform进行彩色变换练习打开ENVI主菜单的transform菜单下的color transform,选择RGB to HSV,之后进行下图样式操作:选择文件保存路径后,得到一个影像文件,打开,如下图。
此外,还可以选择不同的色彩改善方式如下图,选择其他的方式,效果不同,当然选择打开的波段顺序不同,彩色合成的效果就不一样3)利用ENVI主菜单的transform菜单下的利用principalcomponent进行主成分分析练习选择Transform>principal components>Forward PC Rotation>Compute New Statistics and Rotate,打开3-7,点击OK。
图像处理实验报告

图像处理实验报告实验一:图像文件读取和格式转换(BMP、JPG),FMRI_MRI 并利用Matlab编程,实现多种格式图像的读取,显示和格式转换一、实验目的学习并掌握MATLAB中有关图像读取、显示、格式转换等基本内容。
二、实验内容选取目标图片,利用MATLAB对其进行读取、显示、格式转换。
三、实验步骤及各自结果1图像的读取和显示图像来自于E:\实验,图像名称为“mri.bmp”,为bmp格式。
(1)创建脚本文件,并命名为“tx1”。
(2)图像的读取和显示用imread函数实现图像的读取,imshow函数实现图像的显示。
所读取得灰度图像如下:(3)格式转换将灰色图像转换成索引图像索引图像如下:灰度图像转二值图像二值图像如下实验二:图像的直方图调整和灰度变换一、实验目的了解并掌握MATLAB中图像直方图调整和灰度变换。
二、实验内容选取目标图片,利用MATLAB对其进行直方图调整和灰度变换。
三、实验步骤及其各自的结果1创建脚本文件并命名为“tx2”。
2图像灰度调整利用imadjust函数直接调整灰度的范围而调整灰度,本例中直接利用MATLAB R2012a工具箱中自带的图片‘pout.tif’,‘cameraman.tif’和课堂提供的图片‘fmri.bmp’。
(1)下面命令通过灰度范围调整实现了灰度调整实验结果如下图所示其中左上图为原始图像,左下图为相应的灰度数据柱状统计图,右上图为调整后的图像,右下图为相应的灰度数据统计图。
从图中可以看到,调整之后,图像的灰度得到了极大的改善。
如下图(3)可以通过调整灰度范围内的灰度子范围数据,来实现增强或减少图像对比度的效果。
此例中将灰度范围为[0,51]的值,调整到灰度范围为[128,255]的值,并将灰度范围为[128,255]的值映射为255;相应的命令如下所示如下图所示(4)图像反转反转后结果2使用直方图调整灰度读取一幅灰度图像,用histeq函数将原始图像的灰度直方图均衡化,同时观察均衡化后的图像与前面图像的差别,均衡化后的灰度直方图与前面的灰度直方图的区别。
数字图像处理实验matlab4

9,对图3实施正交变换编码和解码(采用离散傅立叶变换)。
建议将图3分成4*4的4个子图象。
思路:先将图3数据读入模块,显示图像,将图分块进行DFT 变换,显示图像,,在进行反变换恢复原数据,在进行哈夫曼编码编码,后解码。
原理:傅立叶变换傅立叶变换是数字图像处理中应用最广的一种变换,其中图像增强、图像复原和图像分析与描述等,每一类处理方法都要用到图像变换,尤其是图像的傅立 叶变换。
离散傅立叶(Fourier )变换的定义:二维离散傅立叶变换(DFT )为:逆变换为:式中,在DFT 变换对中, 称为离散信号 的频谱,而 称为幅度谱,为相位角,功率谱为频谱的平方,它们之间的关系为:图像的傅立叶变换有快速算法。
下面给出具体的Huffman 编码算法。
(1)首先统计出每个符号出现的频率,例如S0到S7的出现频率分别为:0.25,0.19,0.08,0.06,0.21,0.02,0.03,0.16(2)从左到右把上述频率按从大到小的顺序排列。
∑∑-=-=+-=1010)(2exp ),(1),(M x N y N vy M ux j y x f MN v u F π∑∑-=-=+=101)(2exp ),(1),(M u N v N vy M ux j v u F MN y x f π}1,,1,0{,-∈M x u }1,,1,0{,-∈N y v ),(v u F ),(y x f ),(v u F ),(v u ϕ),(),()],(exp[),(),(v u jI v u R v u j v u F v u F +==ϕ(3)将最小的两个数相加的值表上*号,其余的数据不变,然后将得到的数据排序(4)重复(3),直到只有两个数据。
(5) 从最后一列概率编码,从而得到最终编码。
具体过程如下图所示:概率压缩过程:初始信源信源的消减步骤 符号概率 1 2 3 4 5 6 S00.25 0.25 0.25 0.25 0.35* 0.4* 0.6* 0.21 0.21 0.21 0.25 0.35 0.4 0.19 0.19 0.19 0.21 0.25 0.16 0.16 0.19* 0.19 0.08 0.11* 0.16 0.06 0.08 0.05*S40.21 S10.19 S70.16 S20.08 S30.06 S60.03 S5 0.02表 3-1 哈夫曼概率压缩过程编码过程: 初始信源 对消减信源的赋值符号 概率 编码 1 2 3 4 5 6 S00.25 01 0.25 01 0.25 01 0.25 01 0.35*00 0.4* 1 0.6* 0 0.21 10 0.21 10 0.21 10 0.25 01 0.35 00 0.4 1 0.19 11 0.19 11 0.19 11 0.21 10 0.25 01 0.16 001 0.16 001 0.19*000 0.19 11 0.08 0001 0.11* 0000 0.16 0001 0.06 00000 0.08 0001 0.05* 00001S40.21 10 S10.19 11 S70.16 001 S20.08 0001 S30.06 00000 S60.03 S5 0.02表 3-2 哈夫曼算法编码过程算法流程此处并没有采用概率排序, 而是采用对灰度像素个数 读入图像 初始化 统计每种灰度数灰度数排序排序,这是因为计算概率无 疑增大了计算量,因此用灰 度级的像素个数替代图3-1 哈夫曼算法程序流程图程序:clc;clear;close all ;A=[3 3 4 4 4 4 5 24 1 1 2 2 15 44 3 4 4 4 45 24 5 2 5 0 3 1 21 5 0 3 3 5 6 42 3 1 1 2 2 1 20 3 6 5 5 7 2 03 1 2 2 1 5 0 6];subplot(2,2,1),imshow(A);title('原图');I=double(A);P=A(1:4,1:4);K=fft(P);P1=A(1:4,5:8);K1=fft(P1);P2=A(5:8,1:4);K2=fft(P2);P3=A(5:8,5:8);K3=fft(P3);for i=1:4for j=1:4H(i,j)=K(i,j);endendfor i=1:4for j=5:8H(i,j)=K1(i,j-4);endendfor i=5:8 按哈夫曼算法编码 将灰度编码表及原图的编码写入txtfor j=1:4H(i,j)=K2(i-4,j);endendfor i=5:8for j=5:8H(i,j)=K3(i-4,j-4);endendsubplot(2,2,2),imshow(H);title('DFT变换后的频域图像');I=H(1:4,1:4);M=ifft(I);I1=H(1:4,5:8);M1=ifft(I1);I2=H(5:8,1:4);M2=ifft(I2);I3=H(5:8,5:8);M3=ifft(I3);for i=1:4for j=1:4A1(i,j)=M(i,j);endendfor i=1:4for j=5:8A1(i,j)=M1(i,j-4);endendfor i=5:8for j=1:4A1(i,j)=M2(i-4,j);endendfor i=5:8for j=5:8A1(i,j)=M3(i-4,j-4);endendsubplot(2,2,3),imshow(A1);title('复原图像');%编码%读入图像,定义结构体,便于存储I=A;pix(8)=struct('huidu',0.0,...'number',0.0,...'bianma','');[m n l]=size(I);fid=fopen('E:\学习\数字图像处理\huffman.txt','w');%huffman.txt是灰度级及相应的编码表fid1=fopen('E:\学习\数字图像处理\huff_compara.txt','w');%huff_compara.txt是编码表huf_bac=cell(1,l);for t=1:l %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %初始化结构数组for i=1:8pix(i).number=1;pix(i).huidu=i-1;pix(i).bianma='';end%统计每种灰度像素的个数记录在pix数组中for i=1:mfor j=1:nk=I(i,j,t)+1;pix(k).number=1+pix(k).number;endend%按灰度像素个数从大到小排序for i=1:7for j=i+1:8if pix(i).number<pix(j).numbertemp=pix(j);pix(j)=pix(i);pix(i)=temp;endendendfor i=8:-1:1if pix(i).number ~=0break;endendnum=i;count(t)=i;%记录每层灰度级%定义用于求解的矩阵clear huffmanhuffman(num,num)=struct('huidu',0.0,...'number',0.0,...'bianma','');huffman(num,:)=pix(1:num);%矩阵赋值for i=num-1:-1:1p=1;%算出队列中数量最少的两种灰度的像素个数的和sum=huffman(i+1,i+1).number+huffman(i+1,i).number;for j=1:i%如果当前要复制的结构体的像素个数大于sum就直接复制if huffman(i+1,p).number>sumhuffman(i,j)=huffman(i+1,p);p=p+1;else%如果当前要复制的结构体的像素个数小于或等于sum就插入和的结构体%灰度值为-1标志这个结构体的number是两种灰度像素的和huffman(i,j).huidu=-1;huffman(i,j).number=sum;sum=0;huffman(i,j+1:i)=huffman(i+1,j:i-1);break;endendend%开始给每个灰度值编码for i=1:num-1obj=0;for j=1:iif huffman(i,j).huidu==-1obj=j;break;elsehuffman(i+1,j).bianma=huffman(i,j).bianma;endendif huffman(i+1,i+1).number>huffman(i+1,i).number%说明:大概率的编0,小概率的编1,概率相等的,标号大的为1,标号小的为0huffman(i+1,i+1).bianma=[huffman(i,obj).bianma '0']; huffman(i+1,i).bianma=[huffman(i,obj).bianma '1'];elsehuffman(i+1,i+1).bianma=[huffman(i,obj).bianma '1']; huffman(i+1,i).bianma=[huffman(i,obj).bianma '0'];endfor j=obj+1:ihuffman(i+1,j-1).bianma=huffman(i,j).bianma;endendfor k=1:count(t)huf_bac(t,k)={huffman(num,k)}; %保存endend%写出灰度编码表for t=1:lfor b=1:count(t)fprintf(fid,'%d',huf_bac{t,b}.huidu);fwrite(fid,' ');fprintf(fid,'%s',huf_bac{t,b}.bianma);fwrite(fid,' ');endfwrite(fid,'%');end%解码%按原图像数据,写出相应的编码,也就是将原数据用哈夫曼编码替代for t=1:lfor i=1:mfor j=1:nfor b=1:count(t)if I(i,j,t)==huf_bac{t,b}.huiduM(i,j,t)=huf_bac{t,b}.huidu;%将灰度级存入解码的矩阵 fprintf(fid1,'%s',huf_bac{t,b}.bianma);fwrite(fid1,' ');%用空格将每个灰度编码隔开break;endendendfwrite(fid1,',');%用空格将每行隔开endfwrite(fid1,'%');%用%将每层灰度级代码隔开endfclose(fid);fclose(fid1);M=uint8(M);save('M')%存储解码矩阵Msubplot(2,2,4),imshow(A);title('解码后图');原图DFT变换后的频域图像复原图像解码后图对应编码:0 00011 0012 103 0114 115 0106 000007 00001矩阵的编码11 001 001 10 10 001 010 11 ,11 011 11 11 11 11 010 10 ,11 010 10 010 0001 011 001 10 ,001 010 0001 011 011 010 00000 11 ,10 011 001 001 10 10 001 10 ,0001 011 00000 010 010 00001 10 0001 ,011 001 10 10 001 010 0001 00000 ,解码矩阵:M =3 34 4 4 45 24 1 1 2 2 15 44 3 4 4 4 45 24 5 2 5 0 3 1 21 5 0 3 3 5 6 42 3 1 1 2 2 1 2 0 3 6 5 5 7 2 0 3 1 2 2 1 5 0 6。
数字图像处理实验——实验四

报告内容:(目的和要求、原理、步骤、数据、计算、小结等)图像处理综合性实验报告实验四综合实验一、实验目的1、掌握matlab编程语言进行编程。
2、用matlab及运用各种数字图像处理方法实现对图像的变换。
二、实验设备计算机、Matlab软件三、实验原理图像预处理是相对于图像识别、图像理解而言的一种前期处理。
不论采用何种装置,输入的图像往往不能令人满意。
例如,从美学的角度会感到图像中物体的轮廓过于鲜明而显得不协调;按检测对象物大小和形状的要求看,图像的边缘过于模糊;在相当满意的一幅图像上会发现多了一些不知来源的黑点或白点;图像的失真、变形等等。
总之,输入的图像在视觉效果和识别方便性等方面可能存在诸多问题,这类问题不妨统称为“质量”问题。
尽管由于目的、观点、爱好等的不同,图像质量很难有同意的定义和标准,但是,根据应用要改善图像质量却是一个共同的愿望。
改善图像质量的处理称为图像预处理,主要是指按需要对图像进行适当的变换突出某些游泳的信息,去除或削弱无用的信息,如改变图像对比度,去除噪声或强调边缘的处理等。
四、实验步骤1.对图像灰度非线性变换2.对某个图像进行直方图均衡化3.对图像进行直方图规定化4.对图像进行空间域低通滤波5.对图片进行低通滤波处理6.对图像进行空域高通滤波法7.通过各种频域低通滤波器方法对图像进行处理五、源程序清单、测试数据、结果1、灰度非线性变换图像灰度变换是图像增强的一种手段。
其中灰度非线性变换能使图像灰度的分布均匀,与人的视觉特性相匹配。
MATLAB语言编写的例程和图像运行结果如下:%GRAY TRANSFORMclc;I=imread('21.jpg');imshow(I);J=imadjust(I,[0.3 0.7],[0 1],1);%transfroms the values in the intensity image I to%values in J by linealy mapping values between %0.3 and 0.7 to values between 0 and 1figure;imshow(J);J=imadjust(I,[0.3 0.7],[0 1],1);%If GAMMA is less than 1,the mapping%is weighted toward higher (brighter)output values.figure;imshow(J);J=imadjust(I,[0.3 0.7],[0 1],1.5);% If GAMMA is greater than 1,the % mapping is weighted toward lower (darker)output values.figure;imshow(J);J=imadjust(I,[0.3 0.7],[0 1],1);% If TOP < BOTTOM,the output image % is reversed,as in a photogrphic negative.figure;imshow(J);2、对tire图像进行直方图均衡化图示:直方图均衡化是通过变换函数将原图的直方图调整为平坦的直方图。
图像处理实验3-4

数字图像处理实验1. 直方图修正灰度变换是图像增强的一种重要手段,使图像对比度扩展,图像更加清晰,特征更加明显。
灰度级的直方图给出了一幅图像概貌的描述,通过修改灰度直方图来得到图像增强。
(1)计算出一幅灰度图像的直方图clearclose allI=imread(' rice.png');imhist(I)title('实验一(1)直方图');(2)对灰度图像进行简单的灰度线形变换,figuresubplot(2,2,1)imshow(I);title('试验2-灰度线性变换');subplot(2,2,2)histeq(I);(3)看其直方图的对应变化和图像对比度的变化原图像f(m,n) 的灰度范围[a,b] 线形变换为图像g(m,n),灰度范围[a’,b’] 公式:g(m,n)=a’+(b’-a’)* f(m,n) /(b-a)figuresubplot(2,2,1)imshow(I)J=imadjust(I,[0.3,0.7],[0,1],1);title(' 实验一(3)用g(m,n)=a’+(b’-a’)* f(m,n)/(b-a)进行变换');subplot(2,2,2)imshow(J)subplot(2,2,3)imshow(I)J=imadjust(I,[0.5 0.8],[0,1],1);subplot(2,2,4)imshow(J)(4) 图像二值化(选取一个域值,将图像变为黑白图像)figuresubplot(2,2,1)imshow(I)J=find(I<150);I(J)=0;J=find(I>=150);I(J)=255;title(' 实验一(4)图像二值化( 域值为150 )');subplot(2,2,2)imshow(I)clc;I=imread(‘rice.png');bw=im2bw(I,0.5);%选取阈值为0.5figure;imshow(bw) %显示二值图像2. 图像处理变换1.傅立叶变换熟悉其概念和原理,实现对一幅灰度图像的快速傅立叶变换,并求其变换后的系数分布. 2.离散余弦变换熟悉其概念和原理,实现对一幅灰度和彩色图像作的离散余弦变换,选择适当的DCT系数阈值对其进行DCT反变换.% 图像的FFT变换clc;I=imread('rice.png');subplot(1,2,1)imshow(I);title('原图');subplot(1,2,2)imhist(I);title('直方图');colorbar;J=fft2(I);figure;subplot(1,2,1)imshow(J);title('FFT变换结果');subplot(1,2,2)K=fftshift(J);imshow(K);title('零点平移');figure;imshow(log(abs(K)),[]),colormap(jet(64)),colorbar;title('系数分布图');% 图像的DCT变换RGB=imread('onion.png');figure;subplot(1,2,1)imshow(RGB);title('彩色原图');a=rgb2gray(RGB);subplot(1,2,2)imshow(a);title('灰度图');figure;b=dct2(a);imshow(log(abs(b)),[]),colormap(jet(64)),colorbar; title('DCT变换结果');figure;b(abs(b)<10)=0;% idctc=idct2(b)/255;imshow(c);title('IDCT变换结果');3. 小波变换实验内容:熟悉小波变换的概念和原理,熟悉matlab小波工具箱主要函数的使用.利用二维小波分析对一幅图像作2层小波分解,并在此基础上提取各层的低频信息实现图像的压缩.程序如下:clcclose allcleara=imread('deblur1.png ');subplot(1,2,1);imshow(a);title('原始图像');I=rgb2gray(a);subplot(1,2,2);imshow(I);title('原始图像的灰度图');% 进行二维小波变换[a,b] = wavedec2(I, 2, 'bior3.7');% 提取各层低频信息figure;c = appcoef2( a, b, 'bior3.7', 1 );subplot(1,2,1);imshow(c, []);title('一层小波变换结果');d = appcoef2( a, b, 'bior3.7', 2 );subplot(1,2,2);imshow(d, []);title('二层小波变换结果');4. 模板运算一、实验内容:(1)平滑:平滑的目的是模糊和消除噪声。
图像处理 实验报告

图像处理实验报告图像处理实验报告一、引言图像处理是计算机科学与工程领域的重要研究方向之一,它涉及到对图像进行获取、处理、分析和识别等一系列操作。
本实验旨在通过对图像处理算法的实现和应用,探索图像处理的基本原理和方法。
二、实验目的1. 学习图像处理的基本概念和算法;2. 掌握常用的图像处理工具和软件;3. 实现并应用图像处理算法,提高图像质量和识别效果。
三、实验方法1. 实验环境:使用Python编程语言和OpenCV图像处理库;2. 实验工具:Jupyter Notebook;3. 实验步骤:a) 图像读取:使用OpenCV读取图像文件,并将其转换为灰度图像;b) 图像增强:对灰度图像进行直方图均衡化,增强图像的对比度;c) 图像滤波:使用高斯滤波器对图像进行平滑处理,去除噪声;d) 边缘检测:应用Canny算法进行边缘检测,并提取图像中的边缘信息;e) 图像分割:使用基于阈值的方法对图像进行分割,得到目标区域;f) 特征提取:计算图像中目标区域的形状、纹理等特征;g) 图像识别:使用机器学习算法对提取的特征进行分类和识别。
四、实验结果与分析1. 图像增强:经过直方图均衡化处理后,图像的对比度得到了明显的提升,细节更加清晰;2. 图像滤波:高斯滤波器的应用能够有效平滑图像,去除噪声,使图像更加平滑自然;3. 边缘检测:Canny算法能够准确地检测出图像中的边缘,提取出目标物体的轮廓;4. 图像分割:基于阈值的分割方法能够将图像中的目标区域与背景区域分离开来,方便后续的特征提取和识别;5. 特征提取:通过计算目标区域的形状、纹理等特征,可以对图像进行更加细致的描述和识别;6. 图像识别:应用机器学习算法对提取的特征进行分类和识别,可以实现对图像中目标物体的自动识别和分类。
五、实验总结通过本次实验,我们深入学习了图像处理的基本原理和方法,并通过实际操作实现了图像的增强、滤波、边缘检测、分割、特征提取和识别等一系列操作。
图像处理和分析技术实验报告

图像处理实验报告学院:指导老师:专业:班级:学号:姓名:实验一:图像处理基础及图像变换(一)【实验目的】:掌握使用Matlab进行图像处理的基本知识,掌握对图像进行变换的方法,观察图像变换的效果,加深对图像变换知识的理解。
【实验内容】:Matlab的安装和基本的操作以及傅立叶变换实验步骤:1、熟悉Matlab的安装和基本的操作,包括对基本图像处理函数的掌握(imread, imshow, figure, subplot)2、傅立叶变换(fft2, ifft2, fftshift)1) 调入图像文件。
2) 对图像做傅立叶变换,观察图像的原始频谱。
3) 对傅立叶变换的进行移动,观察移位以后的频谱。
4) 对移动后的频谱进行增强,观察增强以后的频谱。
5) 对图像傅立叶变换进行逆变换,比较原图像和经过傅立叶变换和逆变换以后获得的图像。
【源程序】:close all;clear all;A=imread('Fig6.38(a).jpg');subplot(2,3,1);imshow(A);title('原图像');B=rgb2gray(A);subplot(2,3,2);imshow(B);title('原图像灰度图像');C=FFT2(B);subplot(2,3,3);imagesc(abs(C),[0 2000]);title('傅里叶变换图像');subplot(2,3,4);imshow(log(1+abs(C)),[0 10]);title('增强');% subplot(2,2,3);imshow((F.*F),[0 10]);subplot(2,3,5);imshow(fftshift(C));title('移位图像');D=ifft(double(B));subplot(2,3,6);imshow(D);title('傅里叶反变换图像');【实验结果】:傅呈叶变换因傅.100200300400500100 200 300 40& 50C移宜囲傑條里叶反驾拽團像实验二:图像处理基础及图像变换(二)【实验目的】:掌握使用Matlab 进行图像处理的基本知识,掌握对图像进行变换的方法,观察图像变换的效果,加深对图像变换知识的理解。
图像处理综合实验报告

图像处理综合实验报告一、引言图像处理是计算机科学中的重要研究领域,其应用范围广泛,涵盖了图像增强、图像分割、图像识别等多个方面。
本实验旨在通过综合实验的方式,探索图像处理的基本方法和技术,并对实验结果进行分析和总结。
二、实验目的1. 了解图像处理的基本概念和原理;2. 熟悉常用的图像处理工具和算法;3. 掌握图像处理中常见的操作和技术;4. 分析实验结果并提出改进意见。
三、实验步骤1. 实验准备在实验开始之前,我们需要准备一台计算机和图像处理软件,例如MATLAB、Python等。
同时,需要收集一些图像数据作为实验样本。
2. 图像增强图像增强是图像处理中常用的操作,旨在改善图像的质量和视觉效果。
我们可以通过调整图像的亮度、对比度、色彩等参数来实现图像增强。
在实验中,我们可以选择一些常见的图像增强算法,如直方图均衡化、灰度拉伸等。
3. 图像滤波图像滤波是图像处理中常用的技术,用于去除图像中的噪声和平滑图像。
常见的图像滤波算法包括均值滤波、中值滤波、高斯滤波等。
在实验中,我们可以选择适合实验样本的滤波算法,并对比不同滤波算法的效果。
4. 图像分割图像分割是将图像划分为不同的区域或对象的过程。
常见的图像分割算法包括阈值分割、边缘检测、区域生长等。
在实验中,我们可以选择一种或多种图像分割算法,并对比它们的分割效果和计算复杂度。
5. 图像识别图像识别是图像处理的重要应用之一,它可以用于识别和分类图像中的对象或特征。
在实验中,我们可以选择一些常用的图像识别算法,如模板匹配、神经网络等,并通过实验样本进行图像识别的实验。
四、实验结果与分析1. 图像增强实验结果我们选取了一张低对比度的图像作为实验样本,经过直方图均衡化和灰度拉伸处理后,图像的对比度得到了明显的改善,细节部分更加清晰。
2. 图像滤波实验结果我们选取了一张带有高斯噪声的图像作为实验样本,经过均值滤波、中值滤波和高斯滤波处理后,图像的噪声得到了有效的去除,图像更加平滑。
数字图像处理实验报告

数字图像处理实验报告一、引言数字图像处理是一门涉及图像获取、图像处理和图像分析的重要学科,广泛应用于计算机科学、电子工程、通信技术等领域。
本报告旨在介绍并总结我所进行的数字图像处理实验,讨论实验的目的、方法、结果和分析。
二、实验目的通过本次实验,旨在掌握和理解数字图像处理的基本原理和常见技术,包括灰度变换、空间域滤波、频域滤波等,以及层次分割、边缘检测和形态学处理等高级应用技术。
三、实验方法1. 寻找合适的图像在实验中,我选用了一张自然风景图像作为处理对象。
这张图像包含丰富的纹理和颜色信息,适合用于多种图像处理方法的验证和比较。
2. 灰度变换灰度变换是数字图像处理中常见的基础操作,可以通过对图像的像素灰度值进行线性或非线性变换,来调整图像的对比度、亮度等特征。
在实验中,我利用线性灰度变换方法将原始彩色图像转换为灰度图像,并进行对比度的调整,观察处理结果的变化。
3. 空间域滤波空间域滤波是一种基于像素邻域的图像处理方法,常用于图像去噪、边缘增强等应用。
我使用了平滑滤波和锐化滤波两种方法,并针对不同的滤波算子和参数进行了实验和比较,评估其对图像细节和边缘保留的影响。
4. 频域滤波频域滤波是一种基于图像的频谱特征的图像处理方法,广泛应用于图像增强、去噪和特征提取等方面。
我利用傅里叶变换将图像从空间域转换到频域,采用理想低通滤波器和巴特沃斯低通滤波器进行图像的模糊处理,并进行了实验对比和分析。
5. 高级应用技术在实验中,我还研究了数字图像处理中的一些高级应用技术,包括层次分割、边缘检测和形态学处理。
通过应用不同的算法和参数,我实现了图像区域分割、提取图像边缘和形态学形状变换等效果,评估处理结果的准确性和稳定性。
四、实验结果与分析通过对以上实验方法的实施,我获得了一系列处理后的图像,并进行了结果的比较和分析。
在灰度变换实验中,我发现线性变换对图像的对比度有较大影响,但对图像的细节变化不敏感;在空间域滤波实验中,平滑滤波可以有效降噪,但会导致图像细节损失,而锐化滤波可以增强图像的边缘效果,但也容易引入噪声;在频域滤波实验中,理想低通滤波对图像的模糊效果明显,而巴特沃斯低通滤波器可以在一定程度上保留图像的高频细节信息;在高级应用技术实验中,边缘检测和形态学处理对提取图像边缘和形状变换非常有效,但参数的选择会对结果产生较大影响。
图像处理实验报告

图像处理实验报告第一次实验课:绘制直方图f=imread('bld.tif');imshow(f)imhist(f)原图像:直方图:第二次实验课:图像增强f=imread('hua.jpg');imshow(f)g=gscale(f);figure,imshow(g)原图像:处理后的图像:第三次实验课:图像平滑f=imread('noisy.jpg');imshow(f)f1=imnoise(f,'salt & pepper',0.1);figure,imshow(f1)f2=medfilt2(f1);figure,imshow(f2)imwrite(f2,'w.tif')原图像:加噪声后的图像:平滑后的图像:第四次实验课:图像分割f=imread('bld.tif');imshow(f)[gc,t]=edge(f,'canny');figure,imshow(gc)tt =0.0188 0.0469[gc,t]=edge(f,'canny',[0.04 0.10]); figure,imshow(gc)[gc,t]=edge(f,'canny',[0.04 0.10],1.5); figure,imshow(gc)原图像:线检测后得到如下图像:第五次实验课:彩色图像处理f=imread('iris.tif');imshow(b)fr=f(:,:,1);fg=f(:,:,2);fb=f(:,:,3);w=fspecial('disk',3.5);fr_f=imfilter(fr,w,'replicate');fg_f=imfilter(fg,w,'replicate');fb_f=imfilter(fb,w,'replicate');f1=cat(3,fr_f,fg_f,fb_f);原图像:处理后图片为:第六次实验课:形态学处理f=imread('calculator.tif');imshow(f)se=strel('line',55,0);f0=imopen(f,se);f1=imsubtract(f,f0);figure,imshow(f1)原图像:处理后图像:第七次实验课:频域处理f=imread('periodic.jpg');[m,n]=size(f)sig=30;h=lpfilter('gaussian',m,n,sig);F=fft2(double(f));G=h.*F;figure,imshow(abs(G),[])x=real(ifft2(G));figure,imshow(x,[])原图像:处理后图像:f=imread('noise.jpg'); imshow(f)g=fft2(f);s=abs(g);figure,imshow(double(s))figure,imshow(double(s),[])h=fftshift(g);figure,imshow(double(abs(g)),[]) figure,imshow(double(abs(h)),[]) ss=log(1+s);figure,imshow(double(ss),[])原图像:处理后图像:。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验四、图像分割
一、实验目的
理解和掌握图像分割的基本理论和算法,练习使用形态学、区域、边界和阀值的方法结合图像增强复原的相关知识点对图像进行分割处理;
二、实验原理
1. 膨胀和腐蚀是二值形态学的基本操作,其中膨胀是是将与目标区域的背景点合并到该目标物中,使目标物边界向外部扩张的处理;而腐蚀则是一种消除连通域的边界点,使边界向内收缩的处理。
贴标签是对不同连通域区分和标记的基本算法。
两者数学表达如下:
膨胀:B
A
=
C⊕
腐蚀:B
=
A
CΘ
2.图象分割是按照某些特性(如灰度级,频谱,颜色,纹理等)将图象划分成一些区域,在这些区域内其特性是相同的或者说是均匀的,两个相邻区域彼此特性则是不同的,其间存在着边缘或边界。
按照使用图像的特点可以分为两类:利用区域间灰度不连续性――基于边界检测
利用区域内灰度的相似性――基于区域分割
三、实验步骤
1.打开计算机,安装和启动MATLAB程序;程序组中“work”文件夹中应有待处理的图像文件;
2.对于血细胞图像
a).对图像进行去噪、增强处理;
b)运用全局阀值进行二值化(参考教材209页,例9.7, 例9.8, 例9.9);
c)用膨胀腐蚀等形态学方法将血细胞分成不同的连通域(参考教材250
页,例10.9, 例10.10),并使用贴标签的方式对连通域进行统计和标记。
3. 记录和整理实验报告。
四、实验仪器
1.计算机;
2. MATLAB程序;
3.记录用的笔、纸。
五、实验报告内容
1.迭代式阈值选择
I=imread('blood1.jpg');
I=rgb2gray(I);
J=imnoise(I,'salt & pepper',0.02);
subplot(331),imshow(I);title('原图像');
subplot(332),imshow(J);title('添加椒盐噪声图像');
k1=medfilt2(J);
k2=medfilt2(J,[5 5]);
subplot(333),imshow(k2);title('5×5模板中值滤波'); f=double(k2);
T=(min(f(:))+max(f(:)))/2;
done=false;
i=0;
while~done
r1=find(f<=T);
r2=find(f>T);
Tnew=(mean(f(r1))+mean(f(r2)))/2;
done=abs(Tnew-T)<1;
T=Tnew;
i=i+1;
end
f(r1)=0;
f(r2)=1;
subplot(334);
imshow(f);
title('迭代阈值二值化图像');
se=strel('ball',8,8);
I2=imdilate(I,se);
subplot(335);imshow(I2);
title('膨胀后图像');
se=strel('ball',8,8);
I3=imerode(I,se);
subplot(336);imshow(I3);
title('腐蚀后图像');
I2=im2bw(I2);
[I2,N]=bwlabel(I2,8);
subplot(337);
imshow(I2);title('标记图像的连通性');
结果:
2.Otsu方法阈值选择
I=imread('blood1.jpg');
I=rgb2gray(I);
J=imnoise(I,'salt & pepper',0.02);
subplot(331),imshow(I);title('原图像');
subplot(332),imshow(J);title('添加椒盐噪声图像');
k1=medfilt2(J);
k2=medfilt2(J,[5 5]);
subplot(333),imshow(k2);title('5×5模板中值滤波'); T=graythresh(I);
g=im2bw(I,T);
subplot(334);imshow(g);
title('Otsu方法二值化图像');
se=strel('ball',8,8);
I2=imdilate(I,se);
subplot(335);imshow(I2);
title('膨胀后图像');
se=strel('ball',8,8);
I3=imerode(I,se);
subplot(336);imshow(I3);
title('腐蚀后图像');
I2=im2bw(I2);
[I2,N]=bwlabel(I2,8);
subplot(337);
imshow(I2);title('标记图像的连通性');
结果:
六、思考题
1.除了形态学方法用其他方法如何实现图像分割?
答:阈值分割:图像分割的经典方法是基于灰度阈值的分割方法,它通过设置阈值,把像素点按灰度级分若干类,从而实现图像分割;
区域分割:利用的是图像的空间性质,认为分割出来的属于同一区域的像素应具有相似的性质;
运动分割:研究对象通常是图像序列,图像序列的每一幅为一帧,不同时刻采集的多帧图像中包含了存在于相机与景物之间的相对运动信息。
2.图像预处理的作用是什么?
答:去除噪声,增强图像,以得到对具体应用来说视觉效果更好更有用的图像。