数字图像处理课程设计(实验报告)
数字图像处理实验报告——图像分割实验
实验报告课程名称数字图像处理导论专业班级_______________姓名 _______________学号_______________电气与信息学院与谐勤奋求就是创新一.实验目得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类,则像素取值就是浮点数。
数字图像处理实验报告 (图像编码)
实验三图像编码一、实验内容:用Matlab语言、C语言或C++语言编制图像处理软件,对某幅图像进行时域和频域的编码压缩。
二、实验目的和意义:1. 掌握哈夫曼编码、香农-范诺编码、行程编码2.了解图像压缩国际标准三、实验原理与主要框架:3.1实验所用编程环境:Visual C++6.0(简称VC)3.2实验处理的对象:256色的BMP(BIT MAP )格式图像BMP(BIT MAP )位图的文件结构:(如图3.1)图3.1 位图的文件结构具体组成图:单色DIB 有2个表项16色DIB 有16个表项或更少 256色DIB 有256个表项或更少 真彩色DIB 没有调色板每个表项长度为4字节(32位) 像素按照每行每列的顺序排列每一行的字节数必须是4的整数倍biSize biWidth biHeight biPlanes biBitCount biCompression biSizeImagebiXPelsPerMeter biYPelsPerMeter biClrUsedbiClrImportantbfType=”BM ” bfSizebfReserved1 bfReserved2 bfOffBits BITMAPFILEHEADER位图文件头 (只用于BMP 文件)BITMAPINFOHEADER位图信息头Palette 调色板DIB Pixels DIB 图像数据3.3 数字图像基本概念数字图像是连续图像(,)f x y 的一种近似表示,通常用由采样点的值所组成的矩阵来表示:(0,0)(0,1)...(0,1)(1,0)(1,1)...(1,1).........(1,0)(1,1)...(1,1)f f f M f f f M f N f N f N M -⎡⎤⎢⎥-⎢⎥⎢⎥⎢⎥----⎣⎦每一个采样单元叫做一个像素(pixel ),上式(2.1)中,M 、N 分别为数字图像在横(行)、纵(列)方向上的像素总数。
数字图像处理实验报告
数字图像处理实验报告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一. 实验内容:主要是图像的几何变换的编程实现,具体包括图像的读取、改写,图像平移,图像的镜像,图像的转置,比例缩放,旋转变换等.具体要求如下: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等高级语言编写数字图像处理的一些基本算法程序,来巩固和掌握图像处理技术的基本技能,提高实际动手能力,并通过实际编程了解图像处理软件的实现的基本原理。
数字图像处理实验报告
目录实验一:数字图像的基本处理操作 (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()等函数。
数字图像处理图像变换实验报告
实验报告实验名称:图像处理姓名:刘强班级:电信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、图像正交变换的基本原理及编程实现步骤数字图像的处理方法主要有空域法与频域法,点运算与几何变换属于空域法。
数字图像处理课设报告
数字图像处理课程设计报告细胞识别目录第一部分页脚内容11、实验课题名称----------------------------------------------------------------------------------32、实验目的----------------------------------------------------------------------------------------33、实验内容概要----------------------------------------------------------------------------------3第二部分1、建立工程文件----------------------------------------------------------------------------------32、图像信息获取----------------------------------------------------------------------------------43、如何建立下拉菜单----------------------------------------------------------------------------64、标记Mark点------------------------------------------------------------------------------------65、二值化---------------------------------------------------------------------------------------------96、填洞------------------------------------------------------------------------------------------------97、收缩------------------------------------------------------------------------------------------------108、获取中心点--------------------------------------------------------------------------------------119、细胞计数-----------------------------------------------------------------------------------------1310、All-steps-----------------------------------------------------------------------------------------1311、扩展功能---------------------------------------------------------------------------------------14第三部分12、各步骤结果和错误举例--------------------------------------------------------------------16页脚内容2第四部分13、心得体会----------------------------------------------------------------------------------------22第一部分1、实验课题:细胞识别2、实验目的:对血液细胞切片图片进行各种处理,最终得出细胞的数目、面积等信息。
数字图像处理课程设计(实验报告)
数字图像处理课程设计报告姓名:x x学号:xxxxxxx班级: xxxxxxxxxxxxxxx设计题目:红细胞数目检测教师:xxxxxx老师提交日期: xx月xx日一、设计内容:主题:《红细胞数目检测》详细说明:读入红细胞图片,通过中值滤波,开运算,闭运算,以及贴标签等方法获得细胞个数。
二、现实意义:细胞数目检测在现实生活中的意义主要体现在医学上的作用,可通过细胞数目的检测来查看并估计病人或动物的血液中细胞数,如估测血液中红细胞、白细胞、血小板、淋巴细胞等细胞的数目,同时也可检测癌细胞的数目来查看医疗效果,根据这一系列的指标来对病人或动物进行治疗,是具有极其重要的现实作用的。
三、涉及知识内容:1、中值滤波2、开运算3、闭运算4、二值化5、贴标签四、实例分析及截图效果:(1)代码显示:1、程序中定义图像变量说明(1)Image--------------------------------------------------------------原图变量;(2)Image_BW-------------------------------------------------------值化图象; (3)Image_BW_medfilt-------------------------中值滤波后的二值化图像; (4)Optimized_Image_BW---通过“初次二值化图像”与“中值滤波后的二值化图像”进行“或”运算优化图像效果;(5)Reverse_Image_BW--------------------------优化后二值化图象取反;(6)Filled_Image_BW----------------------已填充背景色的二进制图像;(7)Open_Image_BW--------------------------------------开运算后的图像;2、实现代码:Image = imread('红细胞5.jpg');figure,imshow(Image);title('【原图】');Theshold = graythresh(Image);Image_BW = im2bw(Image,Theshold);figure,imshow(Image_BW);title('【初次二值化图像】');Image_BW_medfilt= medfilt2(Image_BW,[13 13]);figure,imshow(Image_BW_medfilt);title('【中值滤波后的二值化图像】');Optimized_Image_BW = Image_BW_medfilt|Image_BW;figure,imshow(Optimized_Image_BW);title('【进行“或”运算优化图像效果】');Reverse_Image_BW = ~Optimized_Image_BW;figure,imshow(Reverse_Image_BW);title('【优化后二值化图象取反】');Filled_Image_BW = bwfill(Reverse_Image_BW,'holes'); figure, imshow(Filled_Image_BW);title('【已填充背景色的二进制图像】');SE = strel('disk',4);Open_Image_BW = imopen(Filled_Image_BW,SE); figure, imshow(Open_Image_BW);title(' 【开运算后的图像】');[Label Number]=bwlabel(Open_Image_BW,8)Array = bwlabel(Open_Image_BW,8);Sum = [];for i=1:Number[r,c] = find(Array==i);rc = [r c];Num = length(rc);Sum([i])=Num;EndSumN = 0;for i=1:length(Sum)if(Sum([i])) > 1500N = N+1;endendNumber = Number+N3、运行效果截图:第一步:读取原图,并显示Image = imread('红细胞5.jpg');figure,imshow(Image);title(' 【原图】');第二步:进行二值化Theshold = graythresh(Image);%取得图象的全局域值Image_BW = im2bw(Image,Theshold);%二值化图象figure,imshow(Image_BW);title(' 【初次二值化图像】');第三步:进行二值化图像Image_BW_medfilt= medfilt2(Image_BW,[13 13]);figure,imshow(Image_BW_medfilt);title(' 【中值滤波后的二值化图像】');第四步:通过“初次二值化图像”与“中值滤波后的二值化图像”进行“或”运算优化图像效果Optimized_Image_BW = Image_BW_medfilt|Image_BW;figure,imshow(Optimized_Image_BW);title(' 【进行“或”运算优化图像效果】');第五步:优化后二值化图象取反,保证:'1'为'白色',0'为'黑色' Reverse_Image_BW = ~Optimized_Image_BW;figure,imshow(Reverse_Image_BW);title(' 【优化后二值化图象取反】');第六步:填充二进制图像的背景色,去掉细胞内的黑色空隙Filled_Image_BW = bwfill(Reverse_Image_BW,'holes');figure, imshow(Filled_Image_BW);title(' 【已填充背景色的二进制图像】');第七步:对图像进行开运算,去掉细胞与细胞之间相粘连的部分SE = strel('disk',4);Open_Image_BW = imopen(Filled_Image_BW,SE);figure, imshow(Open_Image_BW);title(' 【开运算后的图像】');第八步:开始计算细胞数[Label Number]=bwlabel(Open_Image_BW,8)%初步取得细胞个数Array = bwlabel(Open_Image_BW,8);%取得贴标签处理后的图像Sum = [];%依次统计贴标签后数组for i=1:Number[r,c] = find(Array==i);%获取相同标签号的位置,将位置信息存入[r,c]rc = [r c];Num = length(rc);%取得vc数组的元素的个数Sum([i])=Num;%将元素个数存入Sum数组endSumN = 0;-----假如Sum数组中的元素大于了1500,表示有两个细胞相连,像素点较多,即分为两个细胞数---for i=1:length(Sum)if(Sum([i])) > 1500N = N+1;endendNumber = Number+N %----统计最终细胞数第九步:最终检测结果:Number =92Sum =Columns 1 through 103011 313 1501 329 2238 795 758 1438 1087 1472Columns 11 through 201476 1465 2902 1128 1655 44 6261 1193 1306 215Columns 21 through 301112 1074 1177 930 493 1438 1121 1678 1210 1330Columns 31 through 401370 1369 1153 1284 1061 589 2146 1486 1335 1049Columns 41 through 501275 1101 1127 661 1530 1304 2861 90 1772 854Columns 51 through 601554 1582 1287 1362 81 2090 608 1736 853 1040Columns 61 through 702779 1500 246 77 1096 14819680 1404 783 724Columns 71 through 801439 626 1097 1823 1511 1223 1494 2494 1519 1329Columns 81 through 90733 1119 1205 1147 1295 1398 344 1634 324 1081Columns 91 through 92529 239Number =114四、算法分析(1)中值滤波利用中值滤波可以对图像进行平滑处理。
数字图像处理实验报告
数字图像处理实验报告目录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.熟悉常用的数字图像处理工具和方法;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()步骤三:图像压缩图像压缩是数字图像处理中的重要话题,旨在减少图像的存储空间和传输带宽。
数字图像处理 实验报告(完整版).doc
数字图像处理实验一 MATLAB数字图像处理初步一、显示图像1.利用imread( )函数读取一幅图像,假设其名为lily.tif,存入一个数组中;2.利用whos 命令提取该读入图像flower.tif的基本信息;3.利用imshow()函数来显示这幅图像;实验结果如下图:源代码:>>I=imread('lily.tif')>> whos I>> imshow(I)二、压缩图像4.利用imfinfo函数来获取图像文件的压缩,颜色等等其他的详细信息;5.利用imwrite()函数来压缩这幅图象,将其保存为一幅压缩了像素的jpg文件,设为lily.jpg;语法:imwrite(原图像,新图像,‘quality’,q), q取0-100。
6.同样利用imwrite()函数将最初读入的tif图象另存为一幅bmp图像,设为flily.bmp。
7.用imread()读入图像Sunset.jpg和Winter.jpg;8.用imfinfo()获取图像Sunset.jpg和Winter.jpg的大小;9.用figure,imshow()分别将Sunset.jpg和Winter.jpg显示出来,观察两幅图像的质量。
其中9的实验结果如下图:源代码:4~6(接上面两个) >>I=imread('lily.tif')>> imfinfo 'lily.tif';>> imwrite(I,'lily.jpg','quality',20);>> imwrite(I,'lily.bmp');7~9 >>I=imread('Sunset.jpg');>>J=imread('Winter.jpg')>>imfinfo 'Sunset.jpg'>> imfinfo 'Winter.jpg'>>figure(1),imshow('Sunset.jpg')>>figure(2),imshow('Winter.jpg')三、二值化图像10.用im2bw将一幅灰度图像转化为二值图像,并且用imshow显示出来观察图像的特征。
数字图像处理实验报告
数字图像处理实验报告图像处理课程的目标是培养学生的试验综合素质与能力。
使学生通过实践,理解相关理论学问,将各类学问信息进行新的组合,制造出新的方法和新的思路,提高学生的科学试验与实际动手操作能力[1]。
从影像科筛选有价值的图像,建成影像学数字化试验教育平台,系统运行正常;具备图像上传、图像管理、图像检索与扫瞄、试验报告提交、老师批阅等功能;能满意使用要求[2]。
1.试验内容设计思路1.1项目建设内容和方法数字图像处理的内容:完整的数字图像处理大体上分为图像信息的猎取,存储,传送,处理,输出,和显示几个方面。
数字图像信息的猎取主要是把一幅图像转换成适合输入计算机和数字设备的数字信号,包括摄取图像,光、电转换及数字化。
数字图像信息的存储,数字图像信息的突出特点是数据量巨大,为了解决海量存储问题,数字图像的存储主要研究图像压缩,图像格式及图像数据库技术。
数字图像信息的传送数字图像信息的传送可分为系统内部传送与远距离传送[4]数字图像信息处理包括图像变换,图像增加,图像复原,彩色与多光谱处理图像重建,小波变换,图像编码,形态学,目标表示与描述。
数字图像输出和显示,最终目的是为人和机器供应一幅便于解释和识别的图像,数字图像的输出和显示也是数字图像处理的重要内容之一。
1.2数字图像处理的方法大致可以分为两大类,既空域法和频域法空域法:是把图像看做平面中各个像素组成的集合,然后直接对一维和二维函数进行相应处理,依据新图像生成方法的不同,空域处理法可为点处理法,区处理法,叠代处理法,跟踪处理法,位移不变与位移可变处理法。
点处理法的优点,点处理的典型用途a)灰度处理b)图像二值处理点处理方法的优点a)可用LUT方法快速实现b)节省存储空间。
区处理法,邻域处理法。
它依据输入图像的小邻域的像素值,按某些函数得到输出像素。
区处理法主要用于图象平滑和图像的锐化。
叠代处理法:叠代就是反复进行某些处理运算,图像叠代处理也是如此,拉普拉斯算子或平滑处理的结果是物体轮廓,该图像轮廓边缘太宽或粗细不一,要经过多次叠代把它处理成单像素轮廓——图像细化。
数字图像处理实验报告
数字图像处理实验报告一、引言数字图像处理是一门涉及图像获取、图像处理和图像分析的重要学科,广泛应用于计算机科学、电子工程、通信技术等领域。
本报告旨在介绍并总结我所进行的数字图像处理实验,讨论实验的目的、方法、结果和分析。
二、实验目的通过本次实验,旨在掌握和理解数字图像处理的基本原理和常见技术,包括灰度变换、空间域滤波、频域滤波等,以及层次分割、边缘检测和形态学处理等高级应用技术。
三、实验方法1. 寻找合适的图像在实验中,我选用了一张自然风景图像作为处理对象。
这张图像包含丰富的纹理和颜色信息,适合用于多种图像处理方法的验证和比较。
2. 灰度变换灰度变换是数字图像处理中常见的基础操作,可以通过对图像的像素灰度值进行线性或非线性变换,来调整图像的对比度、亮度等特征。
在实验中,我利用线性灰度变换方法将原始彩色图像转换为灰度图像,并进行对比度的调整,观察处理结果的变化。
3. 空间域滤波空间域滤波是一种基于像素邻域的图像处理方法,常用于图像去噪、边缘增强等应用。
我使用了平滑滤波和锐化滤波两种方法,并针对不同的滤波算子和参数进行了实验和比较,评估其对图像细节和边缘保留的影响。
4. 频域滤波频域滤波是一种基于图像的频谱特征的图像处理方法,广泛应用于图像增强、去噪和特征提取等方面。
我利用傅里叶变换将图像从空间域转换到频域,采用理想低通滤波器和巴特沃斯低通滤波器进行图像的模糊处理,并进行了实验对比和分析。
5. 高级应用技术在实验中,我还研究了数字图像处理中的一些高级应用技术,包括层次分割、边缘检测和形态学处理。
通过应用不同的算法和参数,我实现了图像区域分割、提取图像边缘和形态学形状变换等效果,评估处理结果的准确性和稳定性。
四、实验结果与分析通过对以上实验方法的实施,我获得了一系列处理后的图像,并进行了结果的比较和分析。
在灰度变换实验中,我发现线性变换对图像的对比度有较大影响,但对图像的细节变化不敏感;在空间域滤波实验中,平滑滤波可以有效降噪,但会导致图像细节损失,而锐化滤波可以增强图像的边缘效果,但也容易引入噪声;在频域滤波实验中,理想低通滤波对图像的模糊效果明显,而巴特沃斯低通滤波器可以在一定程度上保留图像的高频细节信息;在高级应用技术实验中,边缘检测和形态学处理对提取图像边缘和形状变换非常有效,但参数的选择会对结果产生较大影响。
数字图像处理实验报告(图像灰度变换处理)
数字图像处理实验报告班级:姓名:学号:数字图像处理实验报告一.实验名称:图像灰度变换二.实验目的: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)掌握读、写图像的基本⽅法。
2)掌握MATLAB语⾔中图像数据与信息的读取⽅法。
3)理解图像灰度变换处理在图像增强的作⽤。
4)掌握绘制灰度直⽅图的⽅法,理解灰度直⽅图的灰度变换及均衡化的⽅法。
⼆、实验内容与要求1.熟悉MATLAB语⾔中对图像数据读取,显⽰等基本函数特别需要熟悉下列命令:熟悉imread()函数、imwrite()函数、size()函数、Subplot()函数、Figure()函数。
1)将MATLAB⽬录下work⽂件夹中的forest.tif图像⽂件读出.⽤到imread,imfinfo等⽂件,观察⼀下图像数据,了解⼀下数字图像在MATLAB中的处理就是处理⼀个矩阵。
将这个图像显⽰出来(⽤imshow)。
尝试修改map颜⾊矩阵的值,再将图像显⽰出来,观察图像颜⾊的变化。
2)将MATLAB⽬录下work⽂件夹中的b747.jpg图像⽂件读出,⽤rgb2gray()将其转化为灰度图像,记为变量B。
2.图像灰度变换处理在图像增强的作⽤读⼊不同情况的图像,请⾃⼰编程和调⽤Matlab函数⽤常⽤灰度变换函数对输⼊图像进⾏灰度变换,⽐较相应的处理效果。
3.绘制图像灰度直⽅图的⽅法,对图像进⾏均衡化处理请⾃⼰编程和调⽤Matlab函数完成如下实验。
1)显⽰B的图像及灰度直⽅图,可以发现其灰度值集中在⼀段区域,⽤imadjust函数将它的灰度值调整到[0,1]之间,并观察调整后的图像与原图像的差别,调整后的灰度直⽅图与原灰度直⽅图的区别。
2) 对B 进⾏直⽅图均衡化处理,试⽐较与源图的异同。
3) 对B 进⾏如图所⽰的分段线形变换处理,试⽐较与直⽅图均衡化处理的异同。
图1.1 分段线性变换函数三、实验原理与算法分析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、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
上海理工大学计算机工程学院实验报告实验名称红细胞数目统计课程名称数字图像处理姓名王磊学号0916020226 日期2012-11-27 地点图文信息中心成绩教师韩彦芳一、设计内容:主题:《红细胞数目检测》详细说明:读入红细胞图片,通过中值滤波,开运算,闭运算,以及贴标签等方法获得细胞个数。
二、现实意义:细胞数目检测在现实生活中的意义主要体现在医学上的作用,可通过细胞数目的检测来查看并估计病人或动物的血液中细胞数,如估测血液中红细胞、白细胞、血小板、淋巴细胞等细胞的数目,同时也可检测癌细胞的数目来查看医疗效果,根据这一系列的指标来对病人或动物进行治疗,是具有极其重要的现实作用的。
三、涉及知识内容:1、中值滤波2、开运算3、闭运算4、二值化5、贴标签四、实例分析及截图效果:(1)代码如下:1、程序中定义图像变量说明(1)Image--------------------------------------------------------------原图变量;(2)Image_BW-------------------------------------------------------值化图象; (3)Image_BW_medfilt-------------------------中值滤波后的二值化图像; (4)Optimized_Image_BW---通过“初次二值化图像”与“中值滤波后的二值化图像”进行“或”运算优化图像效果;(5)Reverse_Image_BW--------------------------优化后二值化图象取反;(6)Filled_Image_BW----------------------已填充背景色的二进制图像;(7)Open_Image_BW--------------------------------------开运算后的图像;2、实现代码:%-------图片前期处理-------------------%第一步:读取原图,并显示A = imread('E:\红细胞3.png');Image=rgb2gray(A); %RGB转化成灰度图figure,imshow(Image);title('【原图】');%第二步:进行二值化Theshold = graythresh(Image); %取得图象的全局域值Image_BW = im2bw(Image,Theshold); %二值化图象figure,imshow(Image_BW);title('【初次二值化图像】');%第三步二值化图像进行中值滤波Image_BW_medfilt= medfilt2(Image_BW,[13 13]);figure,imshow(Image_BW_medfilt);title('【中值滤波后的二值化图像】');%第四步:通过“初次二值化图像”与“中值滤波后的二值化图像”进行“或”运算优化图像效果Optimized_Image_BW = Image_BW_medfilt|Image_BW;figure,imshow(Optimized_Image_BW);title('【进行“或”运算优化图像效果】');%第五步:优化后二值化图象取反,保证:‘1’-〉‘白色’,‘0’-〉‘黑色’%方便下面的操作Reverse_Image_BW = ~Optimized_Image_BW;figure,imshow(Reverse_Image_BW);title('【优化后二值化图象取反】');%第六步:填充二进制图像的背景色,去掉细胞内的黑色空隙Filled_Image_BW = bwfill(Reverse_Image_BW,'holes');figure, imshow(Filled_Image_BW);title('【已填充背景色的二进制图像】');%第七步:对图像进行开运算,去掉细胞与细胞之间相粘连的部分SE = strel('disk',4);Open_Image_BW = imopen(Filled_Image_BW,SE);figure, imshow(Open_Image_BW);title(' 【开运算后的图像】');%-------------开始计算细胞数--------------------[Label Number]=bwlabel(Open_Image_BW,8) %初步取得细胞个数Array = bwlabel(Open_Image_BW,8); %取得贴标签处理后的图像Sum = [];%依次统计贴标签后数组for i=1:Number[r,c] = find(Array==i); %获取相同标签号的位置,将位置信息存入[r,c]rc = [r c];Num = length(rc); %取得vc数组的元素的个数Sum([i])=Num; %将元素个数存入Sum数组EndSumN = 0;%假如Sum数组中的元素大于了400,表示有两个细胞相连,像素点较多,即分为两个细胞数for i=1:length(Sum)if(Sum([i])) > 1500N = N+1;endend%------------------统计最终细胞数-----------Number = Number+N3、运行效果截图:第一步:读取原图,并显示A = imread('E:\红细胞3.png ');Image=rgb2gray(A);figure,imshow(Image);title(' 【原图】');第二步:进行二值化Theshold = graythresh(Image);%取得图象的全局域值Image_BW = im2bw(Image,Theshold);%二值化图象figure,imshow(Image_BW);title(' 【初次二值化图像】');第三步:进行二值化图像Image_BW_medfilt= medfilt2(Image_BW,[13 13]); figure,imshow(Image_BW_medfilt);title(' 【中值滤波后的二值化图像】');第四步:通过“初次二值化图像”与“中值滤波后的二值化图像”进行“或”运算优化图像效果Optimized_Image_BW = Image_BW_medfilt|Image_BW;figure,imshow(Optimized_Image_BW);title(' 【进行“或”运算优化图像效果】');第五步:优化后二值化图象取反,保证:'1'为'白色',0'为'黑色'Reverse_Image_BW = ~Optimized_Image_BW;figure,imshow(Reverse_Image_BW);title(' 【优化后二值化图象取反】');第六步:填充二进制图像的背景色,去掉细胞内的黑色空隙Filled_Image_BW = bwfill(Reverse_Image_BW,'holes');figure, imshow(Filled_Image_BW);title(' 【已填充背景色的二进制图像】');第七步:对图像进行开运算,去掉细胞与细胞之间相粘连的部分SE = strel('disk',4);Open_Image_BW = imopen(Filled_Image_BW,SE);figure, imshow(Open_Image_BW);title(' 【开运算后的图像】');第八步:开始计算细胞数[Label Number]=bwlabel(Open_Image_BW,8)%初步取得细胞个数Array = bwlabel(Open_Image_BW,8);%取得贴标签处理后的图像Sum = [];%依次统计贴标签后数组for i=1:Number[r,c] = find(Array==i);%获取相同标签号的位置,将位置信息存入[r,c]rc = [r c];Num = length(rc);%取得vc数组的元素的个数Sum([i])=Num;%将元素个数存入Sum数组endSumN = 0;-----假如Sum数组中的元素大于了1500,表示有两个细胞相连,像素点较多,即分为两个细胞数---for i=1:length(Sum)if(Sum([i])) > 1500N = N+1;endendNumber = Number+N %----统计最终细胞数第九步:最终检测结果:四、算法分析(1)中值滤波利用中值滤波可以对图像进行平滑处理。
算法简单,时间复杂度低,但其对点、线和尖顶多的图像不宜采用中值滤波。
很容易自适应化。
(2)开运算先腐蚀后膨胀的过程称为开运算。
用来消除小物体、在纤细点处分离物体、平滑较大物体的边界的同时并不明显改变其面积。
(3)闭运算先膨胀后腐蚀的过程称为闭运算。
用来填充物体内细小空洞、连接邻近物体、平滑其边界的同时并不明显改变其面积。
五、心得体会耗费了半个月的时间来处理这份课程设计,期间虽然要去复习研究生考试但是我还是坚持了下来,也许实验不是很完美,但却是自己努力完成,因此很有成就感。
最开始以为自己做的很好,都自己完成了,但是跟大家对比后才发现原来自己已经做错了,还好有老师和同学的教导与指点,再次在此表示感谢。
对于这次的课程设计来说,由于是我我首次通过编写代码来完成对图像的处理,这些都是以前没有接触过的,难免出现一些失误,而且又由于自己以前没有接触过matlab,第一次的接触使用中也出现一些错误,不过都通过了后来的翻阅资料等一一解决,这实在是一份难得的经验。
在学习了很多之后我开始慢慢的对MATLAB的操作熟练起来,并且在实践中找到了学习的乐趣。
虽然在这短时间里需要不断查资料,然后对着电脑,把一个个的问题通过这样或那样的方法解决。
我坚信虽然道路是曲折的,但是前途是光明的。