数字图像处理实验6 形态学图像处理

合集下载

数字图像处理——实验ppt课件

数字图像处理——实验ppt课件
14
实验五——参考答案
15
实验五——参考答案
• f=imread(‘strawberries_fullcolor.tif');
• [x1,map1]=rgb2ind(f,8,'nodither');
• figure,imshow(x1,map1);
• title('ind nodither');
i1=imfilter(i,w1,'replicate'); i2=imfilter(i,w2,'replicate'); figure,imshow(i1); title('rgb平滑'); figure,imshow(i2) title('rgbr锐化'); •(1)
• (1) h=rgb2hsi(i); H=h(:,:,1); S=h(:,:,2); I=h(:,:,3); h1=imfilter(h,w1,'replicate');%平滑全部三个分量 I2=imfilter(I,w1,'replicate');%仅平滑亮度分量 h2=cat(3,H,S,I2); hi1=hsi2rgb(h1); hi2=hsi2rgb(h2); hi1=min(hi1,1); hi2=min(hi2,1); figure,imshow(hi1); title('平滑全部三个分量') figure,imshow(hi2); title('仅平滑亮度分量')
title('频域滤波')
11
实验四
1. 使用imnoise2()生成右图, 理解各参数的作用。
12
实验四

数字图像,形态学处理

数字图像,形态学处理

《医学图像处理》实验报告摘要本次实验的目的是对二值原始图像进行膨胀和腐蚀,并对经过膨胀和腐蚀后的两张图像进行集合的逻辑运算操作——交集、补集、相减;对二值图像进行边界提取操作;利用阈值处理的方法对二值图像进行连通分量的提取操作;运用上述结果和其他技术解决课本P442的习题9.36。

本次实验的内容是图像腐蚀图像膨胀边界提取连通分量的提取。

一、技术讨论1.1实验原理1.1.1图像的腐蚀腐蚀缩小或细化了二值图像中的物体。

用3X3的结构元,扫描二值图像的每一个元素,将结构元与其覆盖的二值图像做“与”操作,若结果均为1,输出图像的该像素为1,否则输出图像的该像素为0。

图示如下:1.1.2图像的膨胀膨胀会增长或粗化二值图像中的物体。

用3X3的结构元,扫描二值图像的每一个像素,将结构元关于原点的映射与其覆盖的二值图像做“与”操作,若结果均为0,输出图像的该像素为0,否则输出图像的该像素为1。

图示如下:1.1.3图像的边界提取对图像进行边界提取的方法是先对二值图像进行腐蚀,再将经过腐蚀后的输出图像和原始图像做集合差的逻辑运算。

图示如下:1.1.4图像的连通分量提取连通分量是指若像素子集S的全部像素之间存在一个通路,则可以说两个像素p和q之间是连通的,对于S中的任何像素p,S中连通到该像素的像素称为S的连通分量。

图像连通分量的提取方法是先对二值图像进行阈值处理,再对输出图像做腐蚀处理。

1.1.5测地膨胀测地膨胀不是包含一幅输入图像和特定的结构元素而是涉及两幅图像:标记图像和模版图像。

其基本思想是用特定结构元素对标记图像作膨胀运算,并将结果图像限制在模版图像之下。

图示如下:1.2实验函数示例:A.cvErode( const CvArr* src, CvArr* dst, IplConvKernel* element=NULL, intiterations=1 );——对二值图像进行腐蚀处理。

1.void cvDilate( constCvArr* src, CvArr* dst, IplConvKernel* element=NULL, intiterations=1 );--对二值图像进行膨胀处理;2.void cvThreshold( constCvArr* src, CvArr* dst, double threshold, double max_value, intthreshold_type);--阈值处理函数;二、结果与讨论2.1实验结果(每个实验均要使用3个不同大小的结构元进行处理,并将实验结果列举出来,注明结构元大小)a. Originpicb. intersectionc. img_eroded.img_dilatee. differencingf. Complementation图1.1、图像腐蚀和膨胀(3X3结构元,中心点为1,1)a. Originpicb. intersectionc. img_eroded.img_dilatee. differencingf. Complementation图1.2、图像腐蚀和膨胀(7X7结构元,中心点为3,3)a. Originpicb. intersectionc. img_eroded.img_dilatee. differencingf. Complementation图1.3、图像腐蚀和膨胀(9X9结构元,中心点为4,4)a. Originpicb. img_outc. img_erode图2.1、边界提取(3X3结构元,中心点为1,1)a. Originpicb. img_outc. img_erode图2.2、边界提取(7X7结构元,中心点为1,1)a. Originpicb. img_outc. img_erode图2.3、边界提取(10X10结构元,中心点为1,1)a. Originpicb. img_outc. img_erode图2.4、边界提取(10X10结构元,中心点为5,5)a. Originpicb.img_out1c.img_out2图3.1、连通分量的提取(5X5结构元,中心点为3,3)a. Originpicb.img_singlec.img_intersectd. img_boundary图4.1 problem4-362.2实验讨论(详细说明解决课本习题9.36的具体思路和过程,若有更好地解决课本习题9.36的方法,请详细给出解答思路或过程)1.腐蚀的作用是消除物体边界点,使目标缩小,可以消除小于结构元素的噪声点;膨胀的作用是将与物体接触的所有背景点合并到物体中,使目标增大,可添补目标中的空洞。

数字图像处理实验报告

数字图像处理实验报告

数字图像处理实验报告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、医学图像分析医学图像分析是医学领域重要的研究领域之一,它包括CT、MRI和X光等多种形式。

形态学图像处理技术可以有效的提取出CT图像中的主干血管、肿瘤等重要区域,对于诊断疾病有重要帮助。

2、汽车驾驶辅助在汽车驾驶辅助中,形态学图像处理技术可以有效地提取出车辆周围的区域,这对于车辆原地停车、跟车行车等操作有着重要的作用。

3、人脸识别在人脸识别中,形态学图像处理技术可以提取出人脸的特征数据,这些数据可以用来做人脸比对、活体检测等。

在安防、金融等领域有广泛应用。

三、形态学图像处理技术的优点形态学图像处理技术具有如下优点:1、提高了图像处理效率:形态学图像处理技术可以快速的将图像处理成为我们所需要的形态,提高了图像处理效率。

2、增加了图像处理的准确度:形态学图像处理技术可以将图像中的多余部分进行过滤,使得我们所关注的部分更加突出,增加了图像处理的准确度。

3、可扩展性强:形态学图像处理技术可以应用于不同领域的图像处理中,具有很强的可扩展性。

matlab数字图像处理实验报告

matlab数字图像处理实验报告

《数字图像处理实验报告》实验一图像的增强一.实验目的1.熟悉图像在MATLAB下的读写、输出;2.熟悉直方图;3.熟悉图像的线性指数等;4.熟悉图像的算术运算和几何变换。

二.实验仪器计算机、MATLAB软件三.实验原理图像增强是指根据特定的需要突出图像中的重要信息,同时减弱或去除不需要的信息。

从不同的途径获取的图像,通过进行适当的增强处理,可以将原本模糊不清甚至根本无法分辨的原始图像处理成清晰的富含大量有用信息的可使用图像。

其基本原理是:对一幅图像的灰度直方图,经过一定的变换之后,使其成为均匀或基本均匀的,即使得分布在每一个灰度等级上的像素个数.f=H等或基本相等。

此方法是典刑的图像空间域技术处理,但是由于灰度直方图只是近似的概率密度函数,因此,当用离散的灰度等级做变换时,很难得到完全平坦均匀的结果。

频率域增强技术频率域增强是首先将图像从空间与变换到频域,然后进行各种各样的处理,再将所得到的结果进行反变换,从而达到图像处理的目的。

常用的变换方法有傅里叶变换、DCT变换、沃尔什-哈达玛变换、小波变换等。

假定原图像为f(x,y),经傅立叶变换为F(u,v)。

频率域增强就是选择合适的滤波器H(u,v)对F(u,v)的频谱成分进行处理,然后经逆傅立叶变换得到增强的图像。

四.实验内容及步骤1.图像在MATLAB下的读写、输出;实验过程:>> I = imread('F:\image\');figure;imshow(I);title('Original Image');text(size(I,2),size(I,1)+15, ...'', ...'FontSize',7,'HorizontalAlignment','right');Warning: Image is too big to fit on screen; displaying at 25% > In imuitools\private\initSize at 86In imshow at 1962.给定函数的累积直方图。

数字图像处理实验6 形态学图像处理

数字图像处理实验6 形态学图像处理

实验6 形态学图像处理一.实验目的:1.掌握形态学图像处理的基本算法:膨胀、腐蚀。

2.掌握MATLAB函数中用于构建结构元的标准函数。

3.掌握开运算、闭运算。

二.实验内容:1.利用MATLAB标准函数构建结构元。

2.运用MATLAB标准函数进行膨胀、腐蚀运算,以及开运算、闭运算三.实验原理:1.构建结构元MATLAB标准函数strel运用各种形状和大小构造结构元素,其基本语法为:se = strel(shape, parameters)其中,shape是指定的希望形状的字符串,而parameters是指定形状信息(如其大小)的一系列参数。

语句形式描述se = strel(‘diamond’, R) 创建一个菱形结构元,其中R是从结构原点到菱形最远点的距离se = strel(‘disk’, R) 创建一个圆盘形结构元,其半径为Rse = strel(‘square’, R) 创建一个方形结构元,其边长为R例:>> se = strel(‘diamond’, 5) //返回一个沿水平和垂直轴扩展5个像素的菱形结构元2.膨胀、腐蚀运算,开运算、闭运算膨胀:MATLAB标准函数imdilate(f, se),f是输入的二值图像,se是用于膨胀的结构元,函数的输出即为膨胀后的二值图像。

腐蚀:MATLAB标准函数imerode(f, se),f是输入的二值图像,se是用于腐蚀的结构元,函数的输出即为腐蚀后的二值图像。

开运算(先腐蚀再膨胀):MATLAB标准函数imopen(f, se),f是输入的二值图像,se是结构元,函数的输出即为开运算后的二值图像。

闭运算(先膨胀再腐蚀):MATLAB标准函数imclose(f, se),f是输入的二值图像,se是结构元,函数的输出即为闭运算后的二值图像。

例:>>f = imread('E:\医学图像处理实验讲义\实验六\mask.bmp')>>se = strel('diamond', 5)>> fd = imdilate(f, se) //膨胀运算>>imshow(f)>>figure, imshow(fd)>>se = strel('diamond', 25)>>fd = imdilate(f, se)>>figure, imshow(fd)四.实验报告:1.创建一个parameters = 1的菱形结构元,在报告中画出该结构元的形状及元素值,并用该结构元对图像text.bmp进行膨胀运算。

数字图像处理- 形态学处理

数字图像处理- 形态学处理


Pavlidis细化算法


Rosenfeld细化算法


三种细化算法,在程序中直接运算,并根据运算结 果来判定是否可以删除具体的像素,它们之间的差 别在于不同算法的判定条件是不同的。
数字图像处理
20

数字图像处理
21
1)内部点不能删除;
2)孤立点不能删除; பைடு நூலகம்)直线端点不能删除;

1)将条形区域变成一条薄线; 2)薄线应该位于原条形区域的中心; 3)薄线应该保持原图像的拓扑特性。

数字图像处理
18
根据是否使用迭代运算,可以将细化算法分成
两类,一是迭代算法,二是非迭代算法。

迭代算法,就是重复删除图像边缘中满足一定条件 的像素,以最终得到单像素宽的骨架。

对于迭代算法,又可以根据其检查像素的方式分成串行 算法和并行算法。 所谓串行算法,即为是否删除像素在每次迭代的执行 中是固定顺序的,它不仅取决于前次迭代的结果,而 且也取决于本次迭代中已处理过像素点分布的情况。 对于并行算法,像素点删除与否与像素值在图像中的 顺序无关,仅取决于前次迭代的结果。
相关。

常用的距离尺度有棋盘距离、曼哈顿距离、欧拉距 离。
数字图像处理
28
棋盘距离
曼哈顿距离
欧拉距离
数字图像处理
29
数字图像处理
30

对于距离变换可以进行如下的理解,
就是首先将二值图像的前景像素区域想象为是由某些均 匀缓慢易燃物质组成, 然后考虑对前景像素区域中的所有边界像素进行同时燃 烧, 并且将火一直燃烧至前景像素区域最内部。

如果对区域内部的所有像素进行标记,所标记的内 容为从火开始燃烧直到当前像素被烧到的时间,那 么就得到了二值图像距离变换的有效计算。 一种直观但是效率极其低下的方式就是使用一个合 适的结构元素对图像进行多次连续的腐蚀操作,直 至图像中所有的前景像素被腐蚀掉。

形态学图像处理实验

形态学图像处理实验

形态学图像处理实验1.算法原理1)提取与图像边界融合的颗粒可利用区域填充算法。

如图1所示为源图像,可将图像先转换为二值图像,然后对其进行取反,这样进行区域填充的结果将为与边界相连的颗粒,再与源图像进行比较,即可得出在源图像中与边界相连的颗粒图像。

2)提取彼此交叠的颗粒可利用图像的腐蚀与膨胀操作。

先用模板对图像进行腐蚀操作,由于相交叠的颗粒面积必然比独立的颗粒大,因此腐蚀操作之后剩下的部分为交叠颗粒的部分,再对其进行膨胀,将其与源图像进行比较操作,则可得出交叠的颗粒图像。

3)提取不交叠的颗粒得出交叠的颗粒之后,用源图像对其相减,则得出的为独立分布的颗粒图像。

2.Matlab源代码clear allclcorigin = imread('E:\Documents\BUPT\DIP\第三次作业\grain.jpg');imshow(origin);title('原图');origin = rgb2gray(origin);filterResult = medfilt2(origin);[m,n] = size(origin);%%%%%%%%%%%%取与边界融合的粒子%%%%%%%%%%%%%binaryIm = im2bw(origin);tmp = ~binary Im; %tmp为取反图像fieldFilling = imfill(tmp,'holes');figure, imshow(fieldFilling);title('区域填充结果');boudaryGrains = origin;for i = 1:mfor j = 1:nif fieldFilling(i,j) ==1boudaryGrains(i,j) = 0;endendendfigure, imshow(boudaryGrains);title('与边界融合的粒子结果');%%%%%%%%%%%取交叠与未交叠的粒子%%%%%%%%%%%%mask1 = strel('ball',12,12);%mask2 = ones(13,13);mask2 = strel('ball',7,7);mask3 = strel('disk',4);mask4 = strel('ball',6,6);result1 = imerode(filterResult,ones(15,15));result2 = filter2(fspecial('average',7),im2double(result1)); result2 = medfilt2(result2);result2 = im2uint8(result2);result3 = imdilate(result2,mask1);figure,imshow(result2);title('第一次腐蚀结果'); figure,imshow(result3);title('第一次膨胀结果');result4 = origin;for i = 1:mfor j = 1:nif result3(i,j) <=20result4(i,j) = 0;elseresult4(i,j) = origin(i,j);endendendfigure,imshow(result4);title('阈值处理结果');result5 = imerode(result4,mask4);result6 = imdilate(result5,mask4);figure,imshow(result6);title('交叠粒子结果');result7 = origin-result4;result8 = imerode(result7,mask4);result9 = imdilate(result8,mask4);figure,imshow(result9);title('未交叠粒子结果');3. 运行结果分析1) 提取与边界融合的颗粒原图区域填充结果与边界融合的粒子结果第一次腐蚀所示结果为在腐蚀之后进行了一次中值滤波和一次5X5均值滤波的结果,为使腐蚀的结果更好,去除独立颗粒的腐蚀残留图像。

数字图像处理 第9章 形态学图像处理(1,2)

数字图像处理  第9章 形态学图像处理(1,2)
假设:只有在两个或更多个对象构成彼此 不相交(不连通)的集合时,这些对象才 可区分的。
HYH
第9章 –形态学图像处理
作业1
教材P454 9.2 (a) (b)第2张子图,9.6 (a) (提示:注意结构元素原点的位置 ),9.7 (a) (d) 。
实验五:任务1,2,3,4,6。
HYH
第9章 –形态学图像处理
集合A的边界表示为β (A):
( A) A ( A B)
其中B是一个适当的结构元素。
(9.5-1)
HYH
第9g
假定一个集合的子集的元素是一个8-连通的区域边界,所有非边界的 点为0,如果已知一个p起始点在边界内,下列过程将区域填充为1:
闭操作满足下列性质: (i) A 是A • B的子集。
(ii) 如果C是D的子集,则C • B是D • B的子集。
(iii) (A • B) • B = A • B (幂等)
HYH
第9章 –形态学图像处理
开操作和闭操作示例
HYH
第9章 –形态学图像处理
形态学滤波– 先开后闭
形态学滤波器“开-闭”能够用于去除椒盐噪声。 假定所有噪声分量物理大小小于结构元素B,则背景噪声 在腐蚀阶段被消除。腐蚀将增加物体自身噪声的大小, 这种情况将通过闭操作消除。
9.5.3 连通分量提取
设Y表示为集合A中的一个连通分量(教材P52),并且假定Y上的1 个点p已知,下面的过程可以生成Y的所有元素:
X k ( X k 1 B) A
k 1, 2, 3, ...
(9.5-3)
X0 = p,当Xk = Xk-1算法结束 且 Y = Xk
HYH
第9章 –形态学图像处理

数字图像处理实验报告

数字图像处理实验报告

数字图像处理实验报告数字图像处理实验报告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 bfReserved1bfReserved2bfOffBitsbiSizebiWidthbiHeightbiPlanesbiBitCountbiCompressionbiSizeImagebi_PelsPerMeterbiYPelsPerMeterbiClrUsedbiClrImportant单色DIB有2个表项16色DIB有16个表项或更少256色DIB有256个表项或更少真彩色DIB没有调色板每个表项长度为4字节(32位)像素按照每行每列的顺序排列每一行的字节数必须是4的整数倍BITMAPINFOHEADER 位图信息头 Palette 调色板 DIB Pi_els 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 图像的几何变换图像的几何变换,通常包括图像的平移、图像的镜像变换、图像的转置、图像的缩放和图像的旋转等.一、实验的目的和意义实验目的:本实验内容旨在让学生通过用VC等高级语言编写数字图像处理的一些基本算法程序,来巩固和掌握图像处理技术的基本技能,提高实际动手能力,并通过实际编程了解图像处理软件的实现的基本原理。

数字图像处理形态学

数字图像处理形态学

可编辑ppt
10
形态学操作是由一组形态学代数运算子组 成的,它的基本运算有4个:
膨胀(或扩张)- Dilating 腐蚀(或侵蚀)- Eroding 开启(开运算)- Opening 闭合(闭运算)- Closing
可编辑ppt
11
腐蚀
把结构元素B平移a后 得到Ba,若Ba包含于X, 我们记下这个a点,所 有满足上述条件的a点 组成的集合称做X被B 腐蚀的结果。用公式 表示为:
形态学的数学基础和所用语言是集合论
它具有完备的数学基础,这为形态学用于图像分 析和处理、形态滤波器的特性分析和系统设计奠 定了坚实的基础
可编辑ppt
5
1. 元素(element)
设有一幅图象X,若点a在X的区域以内, 则称a为X的元素,记作a∈X
可编辑ppt
6
2.结构元素(structure element)
可编辑ppt
25
设有两幅图象B,X。若X是被处理的对 象,而B是用来处理X的,则称B为结构元素, 又被形象地称做刷子。结构元素通常都是 一些比较小的图象。
可编辑ppt
7
3. B包含于X(included in) 设有两幅图象B,X。对于B中所有的元
素bi,都有bi∈X,则称B包含于X,记作
BX
可编辑ppt
8
开运算: 蓝色
可编辑ppt
17
形态学用于灰度图像边缘检测处理
原始遥感图像
形传传态统统学soL灰baep度lla算边ce子缘算结检子果测结结果果
可编辑ppt
18
消除城市地图中道路上的文字噪声
地图的原图
形态梯度效果图
梯度消除文字效果图
可编辑ppt

数字图像处理报告 形态学

数字图像处理报告 形态学

《数字图像处理》实验报告姓名XXX学号111111111 专业XXX 实验5一、实验目的1、初步学习掌握形态学的基本知识;2、学会和掌握形态学中基本的图像处理,包括膨胀与腐蚀,开操作和闭操作,边界提取,区域填充,细化粗化等。

3、进一步熟练掌握matlab操作,运用matlab对二值图像实现边界提取,在边界提取基础上实现区域填充。

在区域填充基础上实现细化,在细化基础上再实现粗化。

二、核心代码及运行截图首先读取原图像如下:im=imread('E:/matlab/zimu.jpg');将原图转化为灰度图,命令如下:im = rgb2gray(im);对图像进行二值化处理,代码如下:binary.mfunction [ y ] = binary( im )[m,n] = size(im);y = zeros(m,n);for i=1:mfor j=1:nif im(i,j)>127y(i,j) = 1;elsey(i,j) = 0;endendendend对图像进行膨胀处理,代码如下:expand.mfunction [ y ] = expand( im,B )[m,n] = size(im);[a,b] = size(B);y = zeros(m,n);for i=(1+(a-1)/2):(m-(a-1)/2)for j=(1+(b-1)/2):(n-(b-1)/2)if sum(sum(B &im(i-(a-1)/2:i+(a-1)/2,j-(b-1)/2:j+(b-1)/2)),2) ~= 0 y(i,j) = 1;endendendend以上处理过程命令代码以及所得结果如下:subplot(2,2,1);imshow(im);title('original image');im=rgb2gray(im);subplot(2,2,2);imshow(im);title('gray image');im=binary(im);subplot(2,2,3);imshow(im);title('binary image');B=ones(3,3);B1 = [0,1,0;1,1,1;0,1,0];im1 = expand(im,B);subplot(2,2,4);imshow(im1);title('expand image');处理结果图片如下:将原二值图像与膨胀图像相减得到对比图像,命令如下:figure;imshow(im1-im);处理结果显示如下:对原二值图像进行腐蚀处理,代码如下:corrosion.mfunction [ y ] = corrosion( im,B )[m,n] = size(im);[a,b] = size(B);y = zeros(m,n);for i=(1+(a-1)/2):(m-(a-1)/2)for j=(1+(b-1)/2):(n-(b-1)/2)if B==im(i-(a-1)/2:i+(a-1)/2,j-(b-1)/2:j+(b-1)/2) y(i,j) = 1;endendendend处理命令及处理结果图像如下:im2 = corrosion(im,B);figure,imshow(im2);然后根据上面结果提取边界,操作命令如下:im3 = im - im2;figure,imshow(im3);处理所得的边界图像如下:接下来对图像选定区域进行填充处理,首先对图像进行区域选定,命令如下:[x,y]=ginput;x=round(x);y=round(y);对选定的区域进行填充,函数代码如下:filling.mfunction [ im2 ] = filling( im,B,x,y )[m,n] = size(im);[a,b] = size(x);im1 = zeros(m,n);im2 = zeros(m,n);imc = ~im;for i = 1:aim2(y(i,b),x(i,b)) = 1;endwhile sum(sum(im2-im1),2)~=0, im1 = im2;im2 = expand(im1,B);im2 = im2&imc;endim2 = im1|im;im2 = double(im2);end操作命令及图像如下:im4 = filling(im3,B1,x,y);figure,imshow(im4);对填充后的图像进行细化,函数代码为:refinement.mfunction [ y ] = refinement( im )[m,n] = size(im);B = [0,0,0;0.5,1,0.5;1,1,1];b = [0,0,0;0.5,0,0.5;0,0,0];y = im;for k=1:8for i=2:m-1for j=2:n-1if(im(i,j)==1)x = abs(im(i-1:i+1,j-1:j+1)-b);if (x-B)==0y(i,j) = 0;endendendendim = y;B = imrotate(B,-45,'crop');b = imrotate(b,-45,'crop');endend一次细化操作命令及处理结果如下:im5 = refinement(im4);figure,imshow(im5);多次细化结果如下:对上面细化后图像进行一次粗化,函数代码为:coarsening.mfunction [ y ] = coarsening( im ) y = ~im;y = refinement(y);y = ~y;end操作命令及处理结果图像为:im6 = coarsening(im5);figure,imshow(im6);多次粗化的结果如下:三、实验总结本次实验运用matlab编写代码对二值图像进行各种形态学处理,包括边界提取,在边界提取基础上实现区域填充,在区域填充基础上上实现细化,在细化基础上在实现粗化等操作,此外,还涉及到对图像的膨胀,腐蚀等处理。

数字图像处理实验报告

数字图像处理实验报告

数字图像处理实验报告重庆邮电⼤学《数字图像处理》课程上机实验学院⽣物信息学院专业⽣物医学⼯程班级 0611302姓名李霞学号 2013211957实验⼀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基本数据类型的数值数组本⾝⼗分适于表达图像,矩阵的元素和图像的像素之间有着⼗分⾃然的对应关系。

根据图像数据矩阵解释⽅法的不同,MA TLAB把其处理为4类:亮度图像(Intensity images)⼆值图像(Binary images)索引图像(Indexed images)RGB图像(RGB images)(1) 亮度图像⼀幅亮度图像是⼀个数据矩阵,其归⼀化的取值表⽰亮度。

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

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

数字图像处理实验报告

数字图像处理实验报告

数字图像处理实验报告数字图像处理实验报告第一章总论数字图像处理是计算机图形学、数字信号处理等学科交叉的一门学科。

它是基于数字计算机对图像信号进行数字处理的一种方法。

数字图像处理技术已广泛应用于医学影像诊断、遥感图像处理、图像识别、安防监控等领域,在当今社会中具有不可替代的重要作用。

本次实验主要介绍了数字图像处理的基本方法,包括图像采集、图像增强、图像恢复、图像分割、图像压缩等几个方面。

在实验过程中,我们采用了一些常用的数字图像处理方法,并通过 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. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验6 形态学图像处理
一.实验目的:
1.掌握形态学图像处理的基本算法:膨胀、腐蚀。

2.掌握MATLAB函数中用于构建结构元的标准函数。

3.掌握开运算、闭运算。

二.实验内容:
1.利用MATLAB标准函数构建结构元。

2.运用MATLAB标准函数进行膨胀、腐蚀运算,以及开运算、闭运算
三.实验原理:
1.构建结构元
MATLAB标准函数strel运用各种形状和大小构造结构元素,其基本语法为:se = strel(shape, parameters)
其中,shape是指定的希望形状的字符串,而parameters是指定形状信息(如其大小)的一系列参数。

语句形式描述
se = strel(‘diamond’, R) 创建一个菱形结构元,其中R是从结构原点到菱形最远点
的距离
se = strel(‘disk’, R) 创建一个圆盘形结构元,其半径为R
se = strel(‘square’, R) 创建一个方形结构元,其边长为R
例:>> se = strel(‘diamond’, 5) //返回一个沿水平和垂直轴扩展5个像素的菱形结构元
2.膨胀、腐蚀运算,开运算、闭运算
膨胀:MATLAB标准函数imdilate(f, se),f是输入的二值图像,se是用于膨胀的结构元,函数的输出即为膨胀后的二值图像。

腐蚀:MATLAB标准函数imerode(f, se),f是输入的二值图像,se是用于腐蚀的结构元,函数的输出即为腐蚀后的二值图像。

开运算(先腐蚀再膨胀):MATLAB标准函数imopen(f, se),f是输入的二值图像,se是结构元,函数的输出即为开运算后的二值图像。

闭运算(先膨胀再腐蚀):MATLAB标准函数imclose(f, se),f是输入的二值图像,se是结构元,函数的输出即为闭运算后的二值图像。

例:
>>f = imread('E:\医学图像处理实验讲义\实验六\mask.bmp')
>>se = strel('diamond', 5)
>> fd = imdilate(f, se) //膨胀运算
>>imshow(f)
>>figure, imshow(fd)
>>se = strel('diamond', 25)
>>fd = imdilate(f, se)
>>figure, imshow(fd)
四.实验报告:
1.创建一个parameters = 1的菱形结构元,在报告中画出该结构元的形状及元素值,并用该结构元对图像text.bmp进行膨胀运算。

2.分别创建parameters = 5、parameters = 10、parameters = 20的三个圆形结构元,并用这三个结构元分别对图像wirebond.bmp进行腐蚀运算。

3.创建一个parameters = 20的方形结构元,用该结构元对图像shapes.bmp分别进行开运算、闭运算,比较两者输出图像的不同之处。

4.创建一个parameters = 3的方形结构元,用该结构元对图像fingerprint.bmp 进行依次进行开运算、闭运算,观察最后的输出图像是否很好地去除了噪声。

相关文档
最新文档