数字图像处理实验报告6
- 格式:doc
- 大小:184.00 KB
- 文档页数:8
数字图像处理实验报告实验一数字图像处理编程基础一、实验目的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 编程环境中基本的图像处理函数。
数字图像处理实验报告数字图像处理实验报告(一)实验目的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等高级语言编写数字图像处理的一些基本算法程序,来巩固和掌握图像处理技术的基本技能,提高实际动手能力,并通过实际编程了解图像处理软件的实现的基本原理。
实验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环境中,程序首先读取图像,然后调用图像增强(均值滤波)函数,设置相关参数,再输出处理后的图像。
数字图像处理实验报告(全答案)常用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/y四、实验内容(请将实验程序填写在下方合适的位置,实验图像结果拷屏粘贴)1、读入一幅RGB图像,变换为灰度图像和二值图像,并在同一个窗口内分成三个子窗口来分别显示RGB图像和灰度图像,注上文字标题。
计算机与信息工程学院验证性实验报告一、实验目的1了解图像变换的意义和手段;2熟悉傅立叶变换的基本性质; 3熟练掌握FFT 变换方法及应用; 4通过实验了解二维频谱的分布特点;5通过本实验掌握利用MATLAB 编程实现数字图像的傅立叶变换。
6评价人眼对图像幅频特性和相频特性的敏感度。
二、实验原理1 应用傅立叶变换进行图像处理傅里叶变换是线性系统分析的一个有力工具,它能够定量地分析诸如数字化系统、采样点、电子放大器、卷积滤波器、噪音和显示点等的作用。
通过实验培养这项技能,将有助于解决大多数图像处理问题。
对任何想在工作中有效应用数字图像处理技术的人来说,把时间用在学习和掌握博里叶变换上是很有必要的。
2 傅立叶(Fourier )变换的定义对于二维信号,二维Fourier 变换定义为:2()(,)(,)j ux uy F u v f x y e dxdy π∞∞-+-∞-∞=⎰⎰逆变换:2()(,)(,)j ux uy f x y F u v e dudv π∞∞+-∞-∞=⎰⎰二维离散傅立叶变换为:112()001(,)(,)i k N N j mn N Ni k F m n f i k eNπ---+===∑∑逆变换:112()001(,)(,)i k N N j mn N Nm n f i k F m n eNπ--+===∑∑图像的傅立叶变换与一维信号的傅立叶变换变换一样,有快速算法,具体参见参考书目,有关傅立叶变换的快速算法的程序不难找到。
实际上,现在有实现傅立叶变换的芯片,可以实时实现傅立叶变换。
3利用MATLAB软件实现数字图像傅立叶变换的程序:I=imread(‘原图像名.gif’);%读入原图像文件imshow(I); %显示原图像fftI=fft2(I); %二维离散傅立叶变换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 %归一化figure; %设定窗口imshow(A); %显示原图像的频谱三、实验步骤1.将图像内容读入内存;2.用Fourier变换算法,对图像作二维Fourier变换;3.将其幅度谱进行搬移,在图像中心显示;4.用Fourier系数的幅度进行Fourier反变换;5.用Fourier系数的相位进行Fourier反变换;6.比较4、5的结果,评价人眼对图像幅频特性和相频特性的敏感度。
《数字图像处理》实验报告数字图像处理是一门将图像进行数字化处理的学科,它通过计算机算法和技术手段对图像进行分析、增强、压缩和重建等操作。
在本次实验中,我们学习了数字图像处理的基本概念和常用算法,并通过实验来探索其应用和效果。
首先,我们进行了图像的读取和显示实验。
通过使用Python中的OpenCV库,我们能够轻松地读取图像文件,并将其显示在屏幕上。
这为我们后续的实验奠定了基础。
同时,我们还学习了图像的像素表示方法,了解了图像由像素点组成的原理。
这使我们能够更好地理解后续实验中的算法和操作。
接下来,我们进行了图像的灰度化实验。
灰度化是将彩色图像转换为灰度图像的过程。
在实验中,我们使用了不同的算法来实现灰度化操作,包括平均值法、最大值法和加权平均法等。
通过比较不同算法得到的灰度图像,我们发现不同算法对图像的处理效果有所差异,这使我们深入理解了灰度化的原理和应用。
随后,我们进行了图像的直方图均衡化实验。
直方图均衡化是一种用于增强图像对比度的方法。
在实验中,我们使用了直方图均衡化算法来对图像进行处理,并观察了处理前后的效果变化。
通过实验,我们发现直方图均衡化能够显著提高图像的对比度,使图像更加清晰和鲜明。
在进一步探索图像处理技术的过程中,我们进行了图像的滤波实验。
滤波是一种常用的图像处理操作,它通过对图像进行卷积操作来实现。
在实验中,我们学习了不同类型的滤波器,包括均值滤波器、高斯滤波器和中值滤波器等。
通过比较不同滤波器对图像的处理效果,我们发现每种滤波器都有其适用的场景和效果。
此外,我们还进行了图像的边缘检测实验。
边缘检测是一种用于提取图像边缘信息的方法。
在实验中,我们学习了不同的边缘检测算法,包括Sobel算子、Canny算子和Laplacian算子等。
通过比较不同算法对图像的处理效果,我们发现每种算法都有其独特的特点和应用。
最后,我们进行了图像的压缩实验。
图像压缩是一种将图像数据进行压缩以减小文件大小的方法。
(完整word版)数字图像处理实验报告6数字图像处理与分析实验报告学院:班级:姓名:学号:实验六细胞图像的分割与测量一、实验目的1. 通过分析细胞图像特点,完成细胞图像的分割和测量,并分析测量结果。
2. 将图像预处理、分割、分析等关键技术结合起来,理论与实践相结合,提高图像处理关键技术的综合应用能力。
二、实验要求1. 对比中值、均值和形态学开闭运算对细胞图像的滤波效果,选择适用于细胞图像的滤波方法2. 运用大津阈值对细胞图像分割,观察分割后噪声情况,观察目标边缘处的分割效果;(使用函数:im2bw)3. 实现连通区域的编号;(使用函数:bwlabel)4. 计算各连通区域的相关信息,如面积、重心等。
(使用函数:regionprops )三、实验步骤1、预处理去噪x=imread('C:\Documents and Settings\Administrator\桌面\CHEN2-7.BMP');y=medfilt2(rgb2gray(h));subplot(2,2,1)imshow(x)title('原图像');subplot(2,2,2)imshow(y)title('中值滤波处理');I=fspecial('average')z=imfilter(rgb2gray(x),I);subplot(2,3,4)imshow(z)title('均值滤波处理');se = strel('ball',5,5);m = imopen(rgb2gray(x),se);subplot(2,3,5)imshow(m)title('形态学开运算处理');se = strel('ball',5,5);n = imclose(rgb2gray(x),se);subplot(2,3,6)imshow(n)title('形态学闭运算处理');2、大津阈值分割先做出灰度图像的直方图,根据直方图选取合适的分割灰度值x=imread('C:\Documents and Settings\Administrator\桌面\CHEN2-7.BMP');b=rgb2gray(x);imhist(b);title('灰度直方图');由上图可知,选择阈值在185/255附近可以达到最好的分割效果,则有:x=imread('C:\Documents and Settings\Administrator\桌面\CHEN2-7.BMP'); b=rgb2gray(x);y1=medfilt2(b);w1=im2bw(y1,185/255);h=fspecial('average') ;y2=imfilter(b,h);w2=im2bw(y2, 185/255);se=strel('line',11,90);y3=imopen(b,se);w3=im2bw(y3, 185/255);y4=imclose(b,se);w4=im2bw(y4, 185/255);figuresubplot(2,2,1)imshow(w1)title('中值大津阈值分割');subplot(2,2,2)imshow(w2)title('均值大津阈值分割');subplot(2,2,3)imshow(w3);title('开运算大津阈值分割');subplot(2,2,4)imshow(w4);title('闭运算大津阈值分割');3、目标编号标记x=imread('C:\Documents and Settings\Administrator\桌面\CHEN2-7.BMP'); b=rgb2gray(x);se=strel('ball',5,5);y4=imclose(b,se);w4=im2bw(y4, 185/255);z=imcomplement(w4);subplot(2,2,1)imshow(z);title('取反后图像')z=bwareaopen(z,200);subplot(2,2,2);imshow(z);title('去除像素点小于200的部分')BW = logical(z);L = bwlabel(BW,4);subplot(2,2,3);imshow(L);title('四连通')M=bwlabel(BW,8);Subplot(2,2,4)imshow(M);title('八连通')4、测量各个细胞的面积等参数x=imread('C:\Documents and Settings\Administrator\桌面\CHEN2-7.BMP'); b=rgb2gray(x);se = strel('ball',5,5);I0=imclose(b,se);I11=im2bw(I0,185/256);I12=imcomplement(I11);I13= bwlabel(I12);s = regionprops(I13, 'centroid');centroids = cat(1, s.Centroid);figure(1);imshow(I13)title('重心标记图');hold onplot(centroids(:,1), centroids(:,2), 'r*')hold offm=regionprops(I13,'Area');areas=cat(1, m.Area);figure(3);plot(areas)如图为重心标记和各区域面积分布图:1.为何需要预处理?直接分割的效果如何?答:如果不进行预处理,在后续处理时如进行阈值分割会产生边缘毛刺,使效果不明显;2.选择何种预处理方法?a) 中值适合于去除脉冲噪声和图像扫描噪声,同时不会使图像变模糊,但对消除细节较多的图像不适合用中值滤波;b) 均值可以有效的是噪声得到消除,但同时图像变得模糊,丢失了一些图像的细节部分;c) 形态学开运算对于消除背景噪声有很好的效果,尤其是一些胡椒噪声;d) 形态学闭运算对消除前景噪声效果较好,如:沙眼噪声;通过以上分析及结合图像处理效果可以得出,利用形态学开闭运算对滤除图像中的沙眼噪声和胡椒噪声效果较好;3.分析预处理的目的,有针对性的选择合适的方法答:预处理的目的是为了事先消除图像的噪声,好为后处理做准备;四、思考题1.若将预处理去噪的步骤省掉,则如何在目标编号的过程中加入滤波处理;答:若预处理中没有去噪步骤,从图像处理结果可以看出,经过阈值分割后,图像中还有很多椒盐噪声,要在编号中滤除这些噪声,可通过形态学开运算后,再进行取反操作等后续操作;2.将去噪过程与阈值分割前后调换,选择哪种滤波方法可以滤除二值图像上的噪声;答:通过阈值分割之后,图像中有很多胡椒噪声,可通过形态学开操作将其去除;3.总结大津阈值在细胞图像分割中存在的问题,想一想你所学的算法中哪种算法更适合于细胞图像的分割。
数字图像处理实验报告(五个实验全)实验⼀ 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.数字图像处理简介2.实验目的3.实验内容4.实验结果及代码展示5.算法综述6.M atlab优势7.总结8.存在问题一、数字图像处理简介图像处理,是对图像进行分析、加工、和处理,使其满足视觉、心理以及其他要求的技术。
图像处理是信号处理在图像域上的一个应用。
目前大多数的图像是以数字形式存储,因而图像处理很多情况下指数字图像处理。
此外,基于光学理论的处理方法依然占有重要的地位。
图像处理是信号处理的子类,另外与计算机科学、人工智能等领域也有密切的关系。
传统的一维信号处理的方法和概念很多仍然可以直接应用在图像处理上,比如降噪、量化等。
然而,图像属于二维信号,和一维信号相比,它有自己特殊的一面,处理的方式和角度也有所不同。
二、实验目的巩固所学知识,提高所学能力三、实验内容利用matlab的GUI程序设计一个简单的图像处理程序,并含有如下基本功能:1. 读入一幅RGB图像,变换为灰度图像和二值图像,并在同一个窗口内分成三个子窗口来分别显示RGB图像和灰度图像,注上文字标题2. 对给定图像进行旋转3.对给定的图像添加噪声(椒盐噪声、高斯噪声)四、实验结果及代码展示1.软件设计界面2.各模块功能展示以及程序代码(1)读入一幅RGB图像,变换为灰度图像和二值图像,并在同一个窗口内分成三个子窗口来分别显示RGB图像和灰度图像,注上文字标题效果展示:代码:a = imread('C:\Documents and Settings\Administrator\桌面\数字图像\舞美.JPG');i = rgb2gray(a);I = im2bw(a,0.5);subplot(3,1,1);imshow(a);title('源图像')subplot(3,1,2);imshow(i);title('灰度图像')subplot(3,1,3);imshow(I);title('二值图像')(2)图像旋转原图效果展示:代码:clc;clear all;close all;Img=imread('D:\My Documents\My Pictures\5.JPG'); Img=double(Img);[h w]=size(Img);alpha=pi/4;wnew=w*cos(alpha)+h*sin(alpha);hnew=w*sin(alpha)+h*cos(alpha);wnew=ceil(wnew);hnew=ceil(hnew); u0=w*sin(alpha);T=[cos(alpha),sin(alpha);-sin(alpha),cos(alpha)]; Imgnew2=zeros(hnew,wnew);Imgnew1=zeros(hnew,wnew); for u=1:hnewfor v=1:wnewtem=T*([u;v]-[u0;0]);x=tem(1);y=tem(2);if x>=1&&x<=h&&y>=1&&y<=wx_low=floor(x);x_up=ceil(x);y_low=floor(y);y_up=ceil(y);if (x-x_low)<=(x_up-x)x=x_low;elsex=x_up;endif (y-y_low)<=(y_up-y)y=y_low;elsey=y_up;endp1=Img(x_low,y_low);p2=Img(x_up,y_low);p3=Img(x_low,y_low);p4=Img(x_up,y_up);s=x-x_low;t=y-y_low;Imgnew1(u,v)=Img(x,y);Imgnew2(u,v)=(1-s)*(1-t)*p1+(1-s)*t*p3+(1-t)*s*p2+s*t*p4;endendendfigure;imshow(Imgnew2,[]);B=imrotate(Img,alpha/pi*180);figure;imshow(B,[]);(3)对给定的图像添加噪声(斑点噪声、高斯噪声)效果展示:代码:I= imread('D:\My Documents\My Pictures\5.JPG');figure,subplot(211);imshow(I);title('原图');J1=imnoise(I,'gaussian',0,0.02);subplot(223);imshow(J);title('添加高斯噪声');J=imnoise(I,'speckle',0.04);subplot(224);imshow(J);title('添加斑点噪声');五、算法综述灰度图像:一幅完整的图像,是由红色、绿色、蓝色三个通道组成的。
数字图像处理与分析实验报告学院:班级:姓名:学号:实验六细胞图像的分割与测量一、实验目的1. 通过分析细胞图像特点,完成细胞图像的分割和测量,并分析测量结果。
2. 将图像预处理、分割、分析等关键技术结合起来,理论与实践相结合,提高图像处理关键技术的综合应用能力。
二、实验要求1. 对比中值、均值和形态学开闭运算对细胞图像的滤波效果,选择适用于细胞图像的滤波方法2. 运用大津阈值对细胞图像分割,观察分割后噪声情况,观察目标边缘处的分割效果;(使用函数:im2bw)3. 实现连通区域的编号;(使用函数:bwlabel)4. 计算各连通区域的相关信息,如面积、重心等。
(使用函数:regionprops )三、实验步骤1、预处理去噪x=imread('C:\Documents and Settings\Administrator\桌面\CHEN2-7.BMP');y=medfilt2(rgb2gray(h));subplot(2,2,1)imshow(x)title('原图像');subplot(2,2,2)imshow(y)title('中值滤波处理');I=fspecial('average')z=imfilter(rgb2gray(x),I);subplot(2,3,4)imshow(z)title('均值滤波处理');se = strel('ball',5,5);m = imopen(rgb2gray(x),se);subplot(2,3,5)imshow(m)title('形态学开运算处理');se = strel('ball',5,5);n = imclose(rgb2gray(x),se);subplot(2,3,6)imshow(n)title('形态学闭运算处理');2、大津阈值分割先做出灰度图像的直方图,根据直方图选取合适的分割灰度值x=imread('C:\Documents and Settings\Administrator\桌面\CHEN2-7.BMP');b=rgb2gray(x);imhist(b);title('灰度直方图');由上图可知,选择阈值在185/255附近可以达到最好的分割效果,则有:x=imread('C:\Documents and Settings\Administrator\桌面\CHEN2-7.BMP'); b=rgb2gray(x);y1=medfilt2(b);w1=im2bw(y1,185/255);h=fspecial('average') ;y2=imfilter(b,h);w2=im2bw(y2, 185/255);se=strel('line',11,90);y3=imopen(b,se);w3=im2bw(y3, 185/255);y4=imclose(b,se);w4=im2bw(y4, 185/255);figuresubplot(2,2,1)imshow(w1)title('中值大津阈值分割');subplot(2,2,2)imshow(w2)title('均值大津阈值分割');subplot(2,2,3)imshow(w3);title('开运算大津阈值分割');subplot(2,2,4)imshow(w4);title('闭运算大津阈值分割');3、目标编号标记x=imread('C:\Documents and Settings\Administrator\桌面\CHEN2-7.BMP'); b=rgb2gray(x);se=strel('ball',5,5);y4=imclose(b,se);w4=im2bw(y4, 185/255);z=imcomplement(w4);subplot(2,2,1)imshow(z);title('取反后图像')z=bwareaopen(z,200);subplot(2,2,2);imshow(z);title('去除像素点小于200的部分')BW = logical(z);L = bwlabel(BW,4);subplot(2,2,3);imshow(L);title('四连通')M=bwlabel(BW,8);Subplot(2,2,4)imshow(M);title('八连通')4、测量各个细胞的面积等参数x=imread('C:\Documents and Settings\Administrator\桌面\CHEN2-7.BMP'); b=rgb2gray(x);se = strel('ball',5,5);I0=imclose(b,se);I11=im2bw(I0,185/256);I12=imcomplement(I11);I13= bwlabel(I12);s = regionprops(I13, 'centroid');centroids = cat(1, s.Centroid);figure(1);imshow(I13)title('重心标记图');hold onplot(centroids(:,1), centroids(:,2), 'r*')hold offm=regionprops(I13,'Area');areas=cat(1, m.Area);figure(3);plot(areas)如图为重心标记和各区域面积分布图:1.为何需要预处理?直接分割的效果如何?答:如果不进行预处理,在后续处理时如进行阈值分割会产生边缘毛刺,使效果不明显;2.选择何种预处理方法?a)中值适合于去除脉冲噪声和图像扫描噪声,同时不会使图像变模糊,但对消除细节较多的图像不适合用中值滤波;b)均值可以有效的是噪声得到消除,但同时图像变得模糊,丢失了一些图像的细节部分;c)形态学开运算对于消除背景噪声有很好的效果,尤其是一些胡椒噪声;d)形态学闭运算对消除前景噪声效果较好,如:沙眼噪声;通过以上分析及结合图像处理效果可以得出,利用形态学开闭运算对滤除图像中的沙眼噪声和胡椒噪声效果较好;3.分析预处理的目的,有针对性的选择合适的方法答:预处理的目的是为了事先消除图像的噪声,好为后处理做准备;四、思考题1.若将预处理去噪的步骤省掉,则如何在目标编号的过程中加入滤波处理;答:若预处理中没有去噪步骤,从图像处理结果可以看出,经过阈值分割后,图像中还有很多椒盐噪声,要在编号中滤除这些噪声,可通过形态学开运算后,再进行取反操作等后续操作;2.将去噪过程与阈值分割前后调换,选择哪种滤波方法可以滤除二值图像上的噪声;答:通过阈值分割之后,图像中有很多胡椒噪声,可通过形态学开操作将其去除;3.总结大津阈值在细胞图像分割中存在的问题,想一想你所学的算法中哪种算法更适合于细胞图像的分割。
答:大津阈值是在最小二乘法的基础上建立起来的分割技术,是基于阈值的分割方法,因此在判断阈值时计算量大;可使用canny算子进行边缘检测;五、能否利用所学过的图象分析方法,设计一套算法流程,实现如下图所示的普通信封上邮政编码的定位和识别?车牌定位和识别?(一)普通信封上邮政编码的定位和识别答:1、预处理,先将图像变成灰度图像,通过滤波去掉图像中的噪声2、将变成的灰度图像通过大津阈值法进行二值化处理3、采用Canny算子对图像进行边缘提取4、使用形态学闭运算对图像中的毛刺进行去除,尽量改变需要的区域5、对得到的边缘进行多边形逼近,逼近邮政编码区域6、对邮政编码区域进行识别,根据长宽比的特征对数字进行识别(二)车牌定位和识别答:1、根据车牌的蓝白相间的特征将车牌中的蓝色分量提取出来2、对图像进行预处理,得出图像的灰度图像3、利用大津阈值法进行图像的二值化4、根据车牌的矩形特征将车牌提取出来5、根据数字的特征将车牌中的数字识别出来六、实验总结本次实验是这学期的最后一次实验,也就是因为这个原因,大家在进行实验时都特别的专心认真。
这次实验的许多内容是要我们自己进行编程的,在自己进行编程的过程中学会对图像的预处理去噪、大津阈值分割、目标编号标记和相关参数的测量。
在和同学的交流学习过程中,我们慢慢掌握其中的诀窍,关键还是在于掌握对于图像这样操作的思想流程。
在我看来,这次实验最有意思的地方就是最后老师给的两个构思题。
通过前面的练习,自己独立构思,完成生活中需要的数字图像处理要求,这样不但锻炼了我们自己的思维,而且还使得我们对学过的知识进行了加固。
这是本学期的最后一次实验,我期待着和老师在下学期的见面。
不出意外的话,下学期再见的时候,我应该还能很熟练的运用MA TLAB对数字图像进行处理了。