数字图像处理实验__数学形态学及其应用
- 格式:docx
- 大小:354.05 KB
- 文档页数:8
数字图像处理实验实验十:形态学运算学院:信息工程学院姓名:学号:专业及班级:指导教师:一、实验目的学习常见的数学形态学运算基本方法,了解腐蚀、膨胀、开运算、闭运算取得的效果,培养处理实际图像的能力,并为课堂教学提供配套的实践机会。
二、实验内容利用MatLab工具箱中关于数学形态学运算的函数,计算本指导书中指定二值图像进行处理。
下面是使用数学形态学运算的函数对图像进行处理的MATLAB程序:I=imread('Plane2.jpg');level = graythresh(I); %得到合适的阈值bw = im2bw(I,level); %二值化SE = strel('square',3); %设置膨胀结构元素BW1 = imdilate(bw,SE); %膨胀SE1 = strel('arbitrary',eye(5)); %设置腐蚀结构元素BW2 = imerode(bw,SE1); %腐蚀BW3 = bwmorph(bw, 'open'); %开运算BW4 = bwmorph(bw, 'close'); %闭运算imshow(I);figure,imshow(bw);figure,imshow(BW1);figure,imshow(BW2);figure,imshow(BW3);figure,imshow(BW4);三、实验具体实现1.调入并显示图像Plane2.jpg;2.选取合适的阈值,得到二值化图像Plane2-2.jpg;3.设置结构元素;4.对得到的二值图像Plane2-2.jpg进行腐蚀运算;5.对得到的二值图像Plane2-2.jpg进行膨胀运算;6.对得到的二值图像Plane2-2.jpg进行开运算;7.对得到的二值图像Plane2-2.jpg进行闭运算;8.将两种处理方法的结果作比较;程序:I=imread('1.jpg');level = graythresh(I);bw = im2bw(I,level);SE = strel('square',3);BW1 = imdilate(bw,SE);SE1 = strel('arbitrary',eye(5));BW2 = imerode(bw,SE1);BW3 = bwmorph(bw, 'open');BW4 = bwmorph(bw, 'close');imshow(I);figure,imshow(bw);figure,imshow(BW1);figure,imshow(BW2);figure,imshow(BW3);figure,imshow(BW4);截图:四、思考题1. 结合实验内容,评价腐蚀运算与膨胀运算的效果。
《数字图像处理实验报告》实验一图像的增强一.实验目的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.给定函数的累积直方图。
数学形态学在图像处理中的研究及应用的开题报告
一、选题背景及研究意义
随着计算机技术的不断发展,图像处理技术在各个应用领域逐渐得到了广泛应用。
数学形态学作为图像处理的一种重要方法,可以对图像进行形状和结构特征的分析,
可用于边缘检测、形态学重构、形态学滤波、特征提取等方面。
因此,在图像处理中
研究和应用数学形态学具有重要意义,能够提高图像处理的效率和准确性。
二、文献综述
目前,国内外关于数学形态学在图像处理中的研究已经比较成熟。
其中,Mallat
等人提出了基于数学形态学的多尺度分解方法,可以实现图像的局部分析和重构;Liu 等人则研究了基于形态学的图像分割方法;Papadimitriou等人则应用形态学滤波实现
了图像去噪等。
三、研究内容和研究方法
本文将探讨数学形态学在图像处理中的应用及研究。
具体内容包括:
1. 数学形态学基本概念和原理介绍;
2. 数学形态学在图像处理中的应用场景;
3. 数学形态学与其他图像处理方法的比较分析;
4. 数学形态学在图像处理中的优化方法和应用实例;
5. 数学形态学在特定场景下的应用方式与效果分析。
研究方法主要采用文献综述和案例分析的方法,对国内外相关文献进行综合分析,通过图像处理软件实现数学形态学在图像处理中的具体应用。
四、预期结果
本文旨在系统地总结数学形态学在图像处理中的研究成果,评估其应用价值和实际效果。
通过对数学形态学的深入了解和细致探讨,可为图像处理技术的进一步发展
提供借鉴和参考。
《数字图像处理》实验报告数字图像处理是一门将图像进行数字化处理的学科,它通过计算机算法和技术手段对图像进行分析、增强、压缩和重建等操作。
在本次实验中,我们学习了数字图像处理的基本概念和常用算法,并通过实验来探索其应用和效果。
首先,我们进行了图像的读取和显示实验。
通过使用Python中的OpenCV库,我们能够轻松地读取图像文件,并将其显示在屏幕上。
这为我们后续的实验奠定了基础。
同时,我们还学习了图像的像素表示方法,了解了图像由像素点组成的原理。
这使我们能够更好地理解后续实验中的算法和操作。
接下来,我们进行了图像的灰度化实验。
灰度化是将彩色图像转换为灰度图像的过程。
在实验中,我们使用了不同的算法来实现灰度化操作,包括平均值法、最大值法和加权平均法等。
通过比较不同算法得到的灰度图像,我们发现不同算法对图像的处理效果有所差异,这使我们深入理解了灰度化的原理和应用。
随后,我们进行了图像的直方图均衡化实验。
直方图均衡化是一种用于增强图像对比度的方法。
在实验中,我们使用了直方图均衡化算法来对图像进行处理,并观察了处理前后的效果变化。
通过实验,我们发现直方图均衡化能够显著提高图像的对比度,使图像更加清晰和鲜明。
在进一步探索图像处理技术的过程中,我们进行了图像的滤波实验。
滤波是一种常用的图像处理操作,它通过对图像进行卷积操作来实现。
在实验中,我们学习了不同类型的滤波器,包括均值滤波器、高斯滤波器和中值滤波器等。
通过比较不同滤波器对图像的处理效果,我们发现每种滤波器都有其适用的场景和效果。
此外,我们还进行了图像的边缘检测实验。
边缘检测是一种用于提取图像边缘信息的方法。
在实验中,我们学习了不同的边缘检测算法,包括Sobel算子、Canny算子和Laplacian算子等。
通过比较不同算法对图像的处理效果,我们发现每种算法都有其独特的特点和应用。
最后,我们进行了图像的压缩实验。
图像压缩是一种将图像数据进行压缩以减小文件大小的方法。
数字图像处理技术在数学形态学中的应用
胡俊梅
【期刊名称】《集成电路应用》
【年(卷),期】2022(39)8
【摘要】阐述在传统数学形态学算法的基础上,根据抗噪型膨胀腐蚀形态学边缘检测算子结构元素特征进行算法的改进。
基于结构元素的尺寸与边缘操作时间呈正相关,采用不同大小结构元素组合来提取边缘特征,在保证图像细节前提下能除掉较大噪声点。
根据结构元素的方向性,由具有相同方向结构元素图像相匹配,检测到各边缘信息,确保不同向边缘信息的完整度。
【总页数】2页(P234-235)
【作者】胡俊梅
【作者单位】西安交通工程学院
【正文语种】中文
【中图分类】TP391.41
【相关文献】
1.膜图像处理中数字图像处理技术的有效应用
2.数学形态学在计算机图像处理技术检测粒度中的应用
3.数学形态学在数字图像处理中的应用研究
4.数字图像处理技术在膜图像处理中的应用
5.数学形态学在数字图像处理中的应用
因版权原因,仅展示原文概要,查看原文内容请购买。
数字图像处理实验-形态学(总5页)--本页仅作为文档封面,使用时请直接删除即可----内页可以根据需求调整合适字体及大小--西安邮电学院实验报告实验名称形态学图像处理课程名称数字图像处理A姓名方健成绩班级电子0802学号05081038(01)日期2011-05-31地点3#5311.实验目的(1)了解并掌握膨胀、腐蚀及开运算、闭运算的基本原理;(2)编写程序使用开运算、闭运算处理图像,进一步理解开运算、闭运算的实质;(3)编写程序使用开运算、闭运算进行图像去噪处理,根据实验结果分析效果;(4)总结实验过程(实验报告,左侧装订):方案、编程、调试、结果、分析、结论。
2.实验环境(软件条件)Windows XPMATLAB3.实验方法对两幅受噪声干扰的数字图像(如图所示)和(如图所示)进行如下处理:(1)对两幅图像进行腐蚀、膨胀处理,显示处理前、后图像:可以用不同尺度及形状的结构元素进行腐蚀、膨胀处理,分析结构元素对处理效果的影响;(2)分别对两幅图像设计相应的开、闭运算进行降低噪声的处理,显示处理前、后图像;(3)分析两幅图像为了降低噪声所设计的运算有无不同如果有请分析为什么会有这种不同4.实验分析A基本概念:A.膨胀已知二值图像A,如果A b1,A b2,…,A bn是由二值图像B={b1,b2,b3,…,b n}中像素值为1的点平移得到,则A由B平移的并称为A被B膨胀。
B.腐蚀腐蚀是膨胀的逆运算。
二值图像A经二值图像B腐蚀后在p点仍为1的充分必要条件1是:B平移到B后,B中的1像素也是A中的1像素。
C.开运算用同一结构元腐蚀后在膨胀可去除比结构元小的所有区域像素点,而留下其余部分,这一顺序称为“开”运算。
D.闭运算与开运算顺序相反的过程是先膨胀后再腐蚀,称为“关”运算或“闭”运算。
B 所用函数:构造结构元素:SE = strel(shape, parameters);腐蚀运算:IM2 = imerode(IM,SE);膨胀运算:IM2 = imdilate(IM, SE);开运算:IM2 = imopen(IM,SE)1电子0802-01图实验图像图实验图像闭运算:IM2 = imclose(IM,SE)E. 实验结论A. 对进行腐蚀膨胀操作。
实验四:数学形态学及其应用1.实验目的1.了解二值形态学的基本运算2.掌握基本形态学运算的实现3.了解形态操作的应用2.实验基本原理腐蚀和膨胀是数学形态学最基本的变换,数学形态学的应用几乎覆盖了图像处理的所有领域,给出利用数学形态学对二值图像处理的一些运算。
膨胀就是把连接成分的边界扩大一层的处理。
而收缩则是把连接成分的边界点去掉从而缩小一层的处理。
二值形态学I(x,y), T(i,j)为 0/1图像Θ腐蚀:[]),(&),(),)((),(0,j i T j y i x I AND y x T I y x E mj i ++=Θ==膨胀:[]),(&),(),)((),(0,j i T j y i x I OR y x T I y x D mj i ++=⊕==灰度形态学 T(i,j)可取10以外的值 腐蚀:[]),(),(min ),)((),(1,0j i T j y i x I y x T I y x E m j i -++=Θ=-≤≤膨胀:[]),(),(max ),)((),(1,0j i T j y i x I y x T I y x D m j i +++=⊕=-≤≤1.腐蚀Erosion:{}x B x B X x ⊂=Θ:1B 删两边 2B 删右上图5-1 剥去一层(皮)2.膨胀Dilation:{}X B x B X x ↑⊕:=1B 补两边2B 补左下图5-2 添上一层(漆)3.开运算open :B B X ⊕Θ=)(X B4.闭close :∨Θ⊕=B B X XB)(5.HMT(Hit-Miss Transform:击中——击不中变换) 条件严格的模板匹配),(21T T T =模板由两部分组成。
1T :物体,2T :背景。
{}C x x i X T X T X T X ⊂⊂=⊗21,图5-3 击不中变换示意图性质:(1)φ=2T 时,1T X T X Θ=⊗ (2))()()(21T X T X T X C Θ⋂Θ=⊗ C T X T X )()(21Θ⋂Θ=)/()(21T X T X ΘΘ=6.细化/粗化 (1)细化(Thin )C T X X T X XoT )(/⊗⋂=⊗=去掉满足匹配条件的点。
《数字图像处理》实验报告姓名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编写代码对二值图像进行各种形态学处理,包括边界提取,在边界提取基础上实现区域填充,在区域填充基础上上实现细化,在细化基础上在实现粗化等操作,此外,还涉及到对图像的膨胀,腐蚀等处理。
数字图像处理在科学实验中的应用随着科技的不断进步,数字图像处理在科学实验中的应用越来越广泛。
无论是物理实验、化学实验还是生物实验,数字图像处理都发挥着重要的作用。
本文将探讨数字图像处理在科学实验中的应用,并分析其优势和挑战。
一、数字图像处理在物理实验中的应用在物理实验中,数字图像处理可以帮助科学家更准确地测量和分析实验数据。
例如,在光学实验中,通过将实验结果转化为数字图像,可以使用图像处理算法来测量光的强度、波长和偏振等特性。
这种方法比传统的测量方法更精确和高效。
此外,数字图像处理还可以用于分析物体的运动轨迹。
通过捕捉物体在实验过程中的图像序列,可以利用图像处理算法计算物体的速度、加速度和轨迹等运动参数。
这种方法不仅可以提供准确的实验数据,还可以帮助科学家更好地理解物体的运动规律。
二、数字图像处理在化学实验中的应用在化学实验中,数字图像处理可以帮助科学家观察和分析反应过程。
例如,在溶液反应中,通过拍摄实验过程中的图像,可以使用图像处理算法来分析溶液的浓度和反应速率。
这种方法可以提供实时的反应数据,并且可以自动检测反应终点,从而提高实验效率。
此外,数字图像处理还可以用于分析晶体的结构和形貌。
通过拍摄晶体的图像,并使用图像处理算法进行分析,可以得到晶体的晶格参数、晶面指数和晶体形貌等信息。
这些数据对于研究晶体的性质和应用具有重要意义。
三、数字图像处理在生物实验中的应用在生物实验中,数字图像处理可以帮助科学家观察和分析生物样本。
例如,在细胞实验中,通过拍摄细胞的图像,并使用图像处理算法进行分析,可以得到细胞的大小、形状和数量等信息。
这种方法可以提供大量的实验数据,并且可以自动化地进行细胞计数和分类。
此外,数字图像处理还可以用于分析生物组织的结构和功能。
通过拍摄组织切片的图像,并使用图像处理算法进行分析,可以得到组织的细胞密度、血管分布和蛋白质表达等信息。
这些数据对于研究生物组织的发育和疾病具有重要意义。
数字图像处理实验报告一、引言数字图像处理是一门涉及图像获取、图像处理和图像分析的重要学科,广泛应用于计算机科学、电子工程、通信技术等领域。
本报告旨在介绍并总结我所进行的数字图像处理实验,讨论实验的目的、方法、结果和分析。
二、实验目的通过本次实验,旨在掌握和理解数字图像处理的基本原理和常见技术,包括灰度变换、空间域滤波、频域滤波等,以及层次分割、边缘检测和形态学处理等高级应用技术。
三、实验方法1. 寻找合适的图像在实验中,我选用了一张自然风景图像作为处理对象。
这张图像包含丰富的纹理和颜色信息,适合用于多种图像处理方法的验证和比较。
2. 灰度变换灰度变换是数字图像处理中常见的基础操作,可以通过对图像的像素灰度值进行线性或非线性变换,来调整图像的对比度、亮度等特征。
在实验中,我利用线性灰度变换方法将原始彩色图像转换为灰度图像,并进行对比度的调整,观察处理结果的变化。
3. 空间域滤波空间域滤波是一种基于像素邻域的图像处理方法,常用于图像去噪、边缘增强等应用。
我使用了平滑滤波和锐化滤波两种方法,并针对不同的滤波算子和参数进行了实验和比较,评估其对图像细节和边缘保留的影响。
4. 频域滤波频域滤波是一种基于图像的频谱特征的图像处理方法,广泛应用于图像增强、去噪和特征提取等方面。
我利用傅里叶变换将图像从空间域转换到频域,采用理想低通滤波器和巴特沃斯低通滤波器进行图像的模糊处理,并进行了实验对比和分析。
5. 高级应用技术在实验中,我还研究了数字图像处理中的一些高级应用技术,包括层次分割、边缘检测和形态学处理。
通过应用不同的算法和参数,我实现了图像区域分割、提取图像边缘和形态学形状变换等效果,评估处理结果的准确性和稳定性。
四、实验结果与分析通过对以上实验方法的实施,我获得了一系列处理后的图像,并进行了结果的比较和分析。
在灰度变换实验中,我发现线性变换对图像的对比度有较大影响,但对图像的细节变化不敏感;在空间域滤波实验中,平滑滤波可以有效降噪,但会导致图像细节损失,而锐化滤波可以增强图像的边缘效果,但也容易引入噪声;在频域滤波实验中,理想低通滤波对图像的模糊效果明显,而巴特沃斯低通滤波器可以在一定程度上保留图像的高频细节信息;在高级应用技术实验中,边缘检测和形态学处理对提取图像边缘和形状变换非常有效,但参数的选择会对结果产生较大影响。
数字图象处理实验报告主要是图象的几何变换的编程实现,详细包括图象的读取、改写,图象平移,图象的镜像,图象的转置,比例缩放,旋转变换等.详细要求如下: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 调色板 DIBPixels 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等高级语言编写数字图象处理的一些根本算法程序,来稳固和掌握图象处理技术的根本技能,提高实际动手能力,并通过实际编程了解图象处理软件的实现的根本原理。
《数字图像处理》实验报告数字图像处理是计算机科学与技术领域中的一个重要分支,它涉及到对图像进行获取、处理、分析和显示等一系列操作。
在本次实验中,我们将学习和探索数字图像处理的基本概念和技术,并通过实验来加深对这些概念和技术的理解。
首先,我们需要了解数字图像的基本概念。
数字图像是由像素组成的二维矩阵,每个像素代表图像中的一个点,像素的灰度值或颜色值决定了该点的亮度或颜色。
在实验中,我们将使用灰度图像进行处理,其中每个像素的灰度值表示了该点的亮度。
在数字图像处理中,最基本的操作之一是图像的获取和显示。
我们可以通过摄像头或者从文件中读取图像数据,然后将其显示在计算机屏幕上。
通过这种方式,我们可以对图像进行观察和分析,为后续的处理操作做好准备。
接下来,我们将学习一些常见的图像处理操作。
其中之一是图像的灰度化处理。
通过将彩色图像转换为灰度图像,我们可以减少图像数据的维度,简化后续处理的复杂度。
灰度化处理的方法有多种,例如将彩色图像的RGB三个通道的像素值取平均值,或者使用加权平均值的方法来计算灰度值。
另一个常见的图像处理操作是图像的平滑处理。
图像平滑可以减少图像中的噪声,并使得图像更加清晰。
常用的图像平滑方法包括均值滤波和高斯滤波。
均值滤波通过计算像素周围邻域像素的平均值来平滑图像,而高斯滤波则使用一个高斯核函数来加权平均邻域像素的值。
除了平滑处理,图像的锐化处理也是数字图像处理中的一个重要操作。
图像的锐化可以增强图像的边缘和细节,使得图像更加清晰和鲜明。
常用的图像锐化方法包括拉普拉斯算子和Sobel算子。
这些算子通过计算像素周围邻域像素的差异来检测边缘,并增强边缘的灰度值。
此外,我们还将学习一些图像的变换操作。
其中之一是图像的缩放和旋转。
通过缩放操作,我们可以改变图像的尺寸,使其适应不同的显示设备或应用场景。
而旋转操作可以将图像按照一定的角度进行旋转,以达到某种特定的效果。
最后,我们将学习一些图像的特征提取和分析方法。
实验五: 图像分割与边缘检测一.实验目的1. 理解图像分割的基本概念;2. 理解图像边缘提取的基本概念;3. 掌握进行边缘提取的基本方法;4. 掌握用阈值法进行图像分割的基本方法。
二.实验基本原理 ●图象边缘检测图像理解是图像处理的一个重要分支,研究为完成某一任务需要从图像中提取哪些有用的信息,以及如何利用这些信息解释图像。
边缘检测技术对于处理数字图像非常重要,因为边缘是所要提取目标和背景的分界线,提取出边缘才能将目标和背景区分开来。
在图像中,边界表明一个特征区域的终结和另一个特征区域的开始,边界所分开区域的内部特征或属性是一致的,而不同的区域内部的特征或属性是不同的,边缘检测正是利用物体和背景在某种图像特性上的差异来实现的,这些差异包括灰度,颜色或者纹理特征。
边缘检测实际上就是检测图像特征发生变化的位置。
图象边缘检测必须满足两个条件:一能有效地抑制噪声;二必须尽量精确确定边缘的位置。
由于噪声和模糊的存在,检测到的边界可能会变宽或在某些点处发生间断,因此,边界检测包括两个基本内容:首先抽取出反映灰度变化的边缘点,然后剔除某些边界点或填补边界间断点,并将这些边缘连接成完整的线。
边缘检测的方法大多数是基于方向导数掩模求卷积的方法。
导数算子具有突出灰度变化的作用,对图像运用导数算子,灰度变化较大的点处算得的值比较高,因此可将这些导数值作为相应点的边界强度,通过设置门限的方法,提取边界点集。
一阶导数与是最简单的导数算子,它们分别求出了灰度在x 和y 方向上的变化率,而方向α上的灰度变化率可以用相应公式进行计算;对于数字图像,应该采用差分运算代替求导。
一幅数字图像的一阶导数是基于各种二维梯度的近似值。
图像f(x,y)在位置(x,y)的梯度定义为下列向量:G[f(x,y)]=[]在边缘测中,一般用这个向量的大小,f ∇用表示2/122][Gy Gx f +=∇ 函数f 在某点的方向导数取得最大值的方向是,方向导数的最大值是称为梯度模。
实验二、数学形态学及其应用一、实验目的理解和掌握数学形态学的基本理论和算法,练习使用形态学、区域、边界和阀值的方法结合图像增强复原的相关知识点对图像进行边缘提取和分割;二、实验原理1 膨胀和腐蚀是二值形态学的基本操作,其中膨胀是是将与目标区域的背景点合并到该目标物中,使目标物边界向外部扩张的处理;而腐蚀则是一种消除连通域的边界点,使边界向内收缩的处理。
贴标签是对不同连通域区分和标记的基本算法。
两者数学表达如下:膨胀:B A C ⊕=腐蚀:B A C Θ=2图象分割是按照某些特性(如灰度级,频谱,颜色,纹理等)将图象划分成一些区域,在这些区域内其特性是相同的或者说是均匀的,两个相邻区域彼此特性则是不同的,其间存在着边缘或边界。
按照使用图像的特点可以分为两类:利用区域间灰度不连续性――基于边界检测利用区域内灰度的相似性――基于区域分割3 骨架提取Blum 1967年给出了骨架的最初定义:骨架(中轴)是模型内部各个最大内切球中心的集合。
它还有一个grassfire 的模拟定义,从模型表面开始点火,各个方向上的火的相遇点所构成的集合。
因为模型的骨架很好的保留了模型的拓扑连接性及其形态,所以经常被用于碰撞检测、三维动画、模型渲染、模型表面重建、模型检索等应用中,也有研究人员采用骨架为模型的分解做矫正。
4 细化处理细化算法依据是否使用迭代运算可以分为两类:第一类是非迭代算法,一次即产生骨架,如基于距离变换的方法,如游程长度编码细化等。
第二类是迭代算法,即重复删除图像边缘满足一定条件的像素,最终得到单像素宽带骨架。
迭代方法依据其检查像素的方法又可以再分成串行算法和并行算法,在串行算法中,是否删除像素在每次迭代的执行中是固定顺序的,它不仅取决于前次迭代的结果,也取决于本次迭代中已处理过像素点分布情况,而在并行算法中,像素点删除与否与像素值图像中的顺序无关,仅取决于前次迭代的结果。
部分源代码:(1)clc;clear all;;BW1 = imread('circles.png');SE = eye(5);BW2 = imerode(BW1,SE);BW3 = dilate(BW1,SE);subplot(2,2,1),imshow(BW1),title('原始图像');subplot(2,2,2),imshow(BW2),title('腐蚀后图像');subplot(2,2,3),imshow(BW3),title('膨胀后图像');(2)clc;clear all;SE=ones(10,5); %构建结构要素矩阵BW1=imread('circles.png');subplot(2,2,1),imshow(BW1),title('原始图像');BW2=erode(BW1,SE);subplot(2,2,2),imshow(BW2),title('开启操作中腐蚀操作图像');BW3=dilate(BW2,SE);subplot(2,2,3),imshow(BW3),title('开启操作中膨胀操作图像'); (3)clc;clear all;;BW1 = imread('circles.png');BW2=bwmorph(BW1,'skel',inf); %提取图像骨架subplot(2,2,1),imshow(BW1),title('原始图像');subplot(2,2,2),imshow(BW2),title('骨骼后图像');(4)clc;clear all;;BW1 = imread('circles.png');BW2=bwperim(BW1); %提取图像边界subplot(2,2,1),imshow(BW1),title('原始图像');subplot(2,2,2),imshow(BW2),title('边界图像');(5)骨架提取clc;clear all;;BW1 = imread('guge1.bmp');[row,col]=size(BW1);BW3=zeros(row,col);for i=1:rowfor j=1:colif BW1(i,j)==1BW3(i,j)=0;elseBW3(i,j)=255;endendendSE0= [0,1,0;1,1,1;0,1,0];SE1=[0,0,1,0,0;0,1,1,1,0;1,1,1,1,1;0,1,1,1,0;0,0,1,0,0];SE2=[0,0,0,1,0,0,0;0,0,1,1,1,0,0;0,1,1,1,1,1,0;1,1,1,1,1,1,1;0,1,1,1,1,1,0;0,0,1,1,1,0,0;0,0,0,1,0,0,0];t1=BW3;BW2=zeros(row,col);for t=1:60t1=imerode(t1,SE0);t2=imdilate(imerode(t1,SE0),SE0);BW2=BW2+(t1-t2);figure(t);subplot(2,2,1),imshow(BW3),title('原始图像');subplot(2,2,2),imshow(t1),title('腐蚀后图像1');subplot(2,2,3),imshow(t2),title('开运算后图像2');subplot(2,2,4),imshow(BW2),title('骨架后图像2');end(6)细化处理clear allclose allclc%清除所有的工作变量和命令窗口%显示原始图象y=~imread('guge2.bmp');%根据需要更改路径Y=y;figure(1);imshow(~y);title('二值图像');[X_size,Y_size]=size(y);for j=1:X_sizefor k=1:Y_sizef(j,k)=0;endendi=2;bModified=1;while(bModified==1)bModified=0;for j=2:X_size-1for k=2:Y_size-1if y(j,k)==1bCondition1=0;bCondition2=0;bCondition3=0;bCondition4=0;for m=-1:1for n=-1:1neighbour(m+2,n+2)=y(j+m,k+n);endendnCount=neighbour(1,1)+neighbour(1,2)+neighbour(1,3)+neighbour(2,1)+neighbour(2,3)+neighbour(3,1)+neig hbour(3,2)+neighbour(3,3);if(nCount>=2&&nCount<=6)bCondition1=1;endnCount=0;if(neighbour(1,2)==0&&neighbour(1,1)==1)nCount=nCount+1;endif(neighbour(1,1)==0&&neighbour(2,1)==1)nCount=nCount+1;endif(neighbour(2,1)==0&&neighbour(3,1)==1)nCount=nCount+1;endif(neighbour(3,1)==0&&neighbour(3,2)==1)nCount=nCount+1;endif(neighbour(3,2)==0&&neighbour(3,3)==1)nCount=nCount+1;endif(neighbour(3,3)==0&&neighbour(2,3)==1)nCount=nCount+1;endif(neighbour(2,3)==0&&neighbour(1,3)==1)nCount=nCount+1;endif(neighbour(1,3)==0&&neighbour(1,2)==1)nCount=nCount+1;endif(nCount==1)bCondition2=1;endif((neighbour(1,2)*neighbour(2,1)*neighbour(3,2)==0)||nCount~=1)bCondition3=1;endif((neighbour(2,1)*neighbour(3,2)*neighbour(2,3)==0)||nCount~=1)bCondition4=1;endif(bCondition1==1&&bCondition2==1&&bCondition3==1&&bCondition4==1) f(j,k)=y(j,k);endendendendfor j=1:X_sizefor k=1:Y_sizeif(f(j,k)==1)y(j,k)=0;endendendfor j=2:X_size-1for k=2:Y_size-1if y(j,k)==1bCondition1=0;bCondition2=0;bCondition3=0;bCondition4=0;for m=-1:1for n=-1:1neighbour(m+2,n+2)=y(j+m,k+n);endendnCount=neighbour(1,1)+neighbour(1,2)+neighbour(1,3)+neighbour(2,1)+neighbour(2,3)+neighbour(3,1)+neig hbour(3,2)+neighbour(3,3);if(nCount>=2&&nCount<=6)bCondition1=1;endnCount=0;if(neighbour(1,2)==0&&neighbour(1,1)==1)nCount=nCount+1;endif(neighbour(1,1)==0&&neighbour(2,1)==1)nCount=nCount+1;endif(neighbour(2,1)==0&&neighbour(3,1)==1)nCount=nCount+1;endif(neighbour(3,1)==0&&neighbour(3,2)==1)nCount=nCount+1;endif(neighbour(3,2)==0&&neighbour(3,3)==1)nCount=nCount+1;endif(neighbour(3,3)==0&&neighbour(2,3)==1)nCount=nCount+1;endif(neighbour(2,3)==0&&neighbour(1,3)==1)nCount=nCount+1;endif(neighbour(1,3)==0&&neighbour(1,2)==1)nCount=nCount+1;endif(nCount==1)bCondition2=1;if((neighbour(1,2)*neighbour(2,1)*neighbour(2,3)==0)||nCount~=1)bCondition3=1;endif((neighbour(1,2)*neighbour(3,2)*neighbour(2,3)==0)||nCount~=1)bCondition4=1;endif(bCondition1==1&&bCondition2==1&&bCondition3==1&&bCondition4==1) f(j,k)=y(j,k);bModified=1;endendendendfor j=1:X_sizefor k=1:Y_sizeif(f(j,k)==1)y(j,k)=0;endendendfigure(i);imshow(~y);title('二值图像');i=i+1;end[X_size,Y_size]=size(y);for j=1:X_sizefor k=1:Y_sizef(j,k)=0;endendbModified=1;while(bModified==1)bModified=0;for j=2:X_size-1for k=2:Y_size-1if y(j,k)==1bCondition1=0;bCondition2=0;bCondition3=0;bCondition4=0;for m=-1:1for n=-1:1neighbour(m+2,n+2)=y(j+m,k+n);endif((neighbour(1,2)==0&&neighbour(1,3)==1)||(neighbour(3,2)==0&&neighbour(3,3)==1))bCondition1=1;endif((neighbour(2,1)==0&&neighbour(1,1)==1)||(neighbour(2,3)==0&&neighbour(1,3)==1))bCondition2=1end;if((neighbour(1,2)==0&&neighbour(1,1)==1)||(neighbour(3,2)==0&&neighbour(3,1)==1))bCondition3=1;endif((neighbour(2,1)==0&&neighbour(3,1)==1)||(neighbour(2,3)==0&&neighbour(3,3)==1))bCondition4=1;endif(bCondition1==0&&bCondition2==0&&bCondition3==0&&bCondition4==0)if((neighbour(1,1)+neighbour(1,2)+neighbour(1,3)+neighbour(2,1)+neighbour(2,3)+neighbour(3,1)+neighbour (3,2)+neighbour(3,3))<=2)f(j,k)=0;elsef(j,k)=1;bModified=1;endendendendendfor j=1:X_sizefor k=1:Y_sizeif(f(j,k)==1)y(j,k)=0;endendendendfigure(i+1);imshow(~y);title('二次细化图像');figure(i+2);imshow(Y-y);title('最终图像');三、实验仪器1计算机;2 MA TLAB程序;四、实验报告内容1叙述实验过程;2提交实验的原始图像、结果图像和统计信息。
实验五: 图像分割与边缘检测一.实验目的1. 理解图像分割的基本概念;2. 理解图像边缘提取的基本概念;3. 掌握进行边缘提取的基本方法;4. 掌握用阈值法进行图像分割的基本方法。
二.实验基本原理 ●图象边缘检测图像理解是图像处理的一个重要分支,研究为完成某一任务需要从图像中提取哪些有用的信息,以及如何利用这些信息解释图像。
边缘检测技术对于处理数字图像非常重要,因为边缘是所要提取目标和背景的分界线,提取出边缘才能将目标和背景区分开来。
在图像中,边界表明一个特征区域的终结和另一个特征区域的开始,边界所分开区域的内部特征或属性是一致的,而不同的区域内部的特征或属性是不同的,边缘检测正是利用物体和背景在某种图像特性上的差异来实现的,这些差异包括灰度,颜色或者纹理特征。
边缘检测实际上就是检测图像特征发生变化的位置。
图象边缘检测必须满足两个条件:一能有效地抑制噪声;二必须尽量精确确定边缘的位置。
由于噪声和模糊的存在,检测到的边界可能会变宽或在某些点处发生间断,因此,边界检测包括两个基本内容:首先抽取出反映灰度变化的边缘点,然后剔除某些边界点或填补边界间断点,并将这些边缘连接成完整的线。
边缘检测的方法大多数是基于方向导数掩模求卷积的方法。
导数算子具有突出灰度变化的作用,对图像运用导数算子,灰度变化较大的点处算得的值比较高,因此可将这些导数值作为相应点的边界强度,通过设置门限的方法,提取边界点集。
一阶导数与是最简单的导数算子,它们分别求出了灰度在x 和y 方向上的变化率,而方向α上的灰度变化率可以用相应公式进行计算;对于数字图像,应该采用差分运算代替求导。
一幅数字图像的一阶导数是基于各种二维梯度的近似值。
图像f(x,y)在位置(x,y)的梯度定义为下列向量:G[f(x,y)]=[]在边缘测中,一般用这个向量的大小,f ∇用表示2/122][Gy Gx f +=∇ 函数f 在某点的方向导数取得最大值的方向是,方向导数的最大值是称为梯度模。
利用梯度模算子来检测边缘是一种很好的方法,它不仅具有位移不变性,还具有各向同性。
为了运算简便,实际中采用梯度模的近似形式。
f∇=或者f∇=max(|Gx |,|Gy |)传统的边缘检测算法通过梯度算子来实现的,在求边缘的梯度时,需要对每个象素位置计算。
在实际中常用小区域模板卷积来近似快速计算,简单有效,即梯度算子一般采用滤波算子的形式来完成,因此应用很广泛。
模板是N*N的权值方阵,经典的梯度算子模板有:Sobel模板、Prewitt模板、Roberts模板、Laplacian模板等。
具体模板请见书。
拉普拉斯高斯(LoG)算法是一种二阶边缘检测方法。
它通过寻找图像灰度值中二阶微分中的过零点(Zero Crossing)来检测边缘点。
其原理为,灰度级变形成的边缘经过微风算子形成一个单峰函数,峰值位置对应边缘点;对单峰函数进行微分,则峰值处的微分值为0,峰值两侧符号相反,而原先的极值点对应二阶微分中的过零点,通过检测过零点即可将图像的边缘提取出来。
(a)原图 (b)边缘检测后的图 (c) 阈值处理后的图●图象分割图像分割是将图像划分成若干个互不相交的小区域的过程,小区域是某种意义下具有共同属性的像素的连通集合。
如不同目标物体所占的图像区域、前景所占的图像区域等。
连通是指集合中任意两个点之间都存在着完全属于该集合的连通路径。
1.双峰法先给出原图的直方图,再定出阈值(门限)T,一般取两个峰值间的谷值。
2.P参数法这种方法用于目标所占图像面积已知的情况。
设目标在最简单图像f(i , j) 中所占的面积s0与图像面积s之比为P = s0/ s,则背景所占面积比为1-P = (s - s0) / s。
一般来说,低灰度值为背景,高灰度值为目标。
如果统计图像f(i , j)灰度值不大于某一灰度t的像元数和图像总像元数之比为1-p时,则以t为阈值。
3.自适应全局阈值(单阈值)算法步骤如下:初始化阈值T (一般为原图像所有像素平均值)。
用T分割图像成两个集合:G1 和G2,其中G1包含所有灰度值小于T的像素,G2包含所有灰度值大于T的像素。
计算G1中像素的平均值m1及G2中像素的平均值m2。
计算新的阈值:T =(m1+m2)/2 。
如果新阈值跟原阈值之间的差值小于一个预先设定的范围,停止循环,否则继续2-4步。
全局单阈值分割只适用于很少的图像。
对一般图像采用局部阈值法或多阈值法会得到更好的效果。
三.实验内容与要求1) 读出文档中eight.tif 这幅图像,分别用Roberts, Sobel 和拉普拉斯高斯算子对图像进行边缘检测。
原图像roberts算法边缘检测图像sobel算法边缘检测图像log算法边缘检测图像I=imread('eight.tif');subplot(221),imshow(I);title('原图像');BW1=edge(I,'roberts')subplot(222),imshow(BW1);title('roberts算法边缘检测图像');BW2=edge(I,'sobel')subplot(223),imshow(BW2);title('sobel 算法边缘检测图像'); BW3=edge(I,'log')subplot(224),imshow(BW3); title('log 算法边缘检测图像');2 任选一种阈值法进行图像分割.原图像双峰分割后图像50100150200250I=imread('eight.tif'); subplot(221),imshow(I); title('原图像');subplot(222),imhist(I); title('直方图');newI=im2bw(I,180/255); subplot(223),imshow(newI); title('双峰分割后图像');四.实验结果分析2、分析三种边缘检测算子处理的不同之处;Roberts 采用对角线方向相邻两像素之差表示信号的突变,检测水平和垂直方向边缘的性能好于斜线方向,算子定位精度高,在水平和垂直方向效果较好,但是对噪声敏感。
Sobel边缘检测算子是像素邻域加权和,模板中心值较大,不但产生较好的边缘效果,而且对噪声具有平滑作用。
但存在伪边缘,边缘比较粗定位精度低。
算子通常对灰度渐变和噪声较多的图像处理的较好。
Prewitt边缘检测算子不仅能检测出边缘点,而且能抑制噪声的影响,对灰度和噪声较多的图像处理较好。
3、阐述自己选用的阈值法所进行图像分割的原理和效果。
假定物体和背景分别处于不同灰度级,图像被零均值高斯噪声污染,图像的灰度分布曲线近似用两个正态分布概率密度函数分别代表目标和背景的直方图,利用这两个函数的合成曲线拟合整体图像的直方图,图像的直方图将会出现两个分离的峰值,如下图然后依据最小误差理论针对直方图的两个峰间的波谷所对应的灰度值求出分割的阈值。
该方法适用于具有良好双峰性质的图像,但需要用到数值逼近等计算,算法十分复杂,而且多数图像的直方图是离散、不规则的。
在实际阈值分割过程中,往往需要能够自动获取阈值在物体与背景有较强的对比度的图像中,即图像直方图中出现明显双峰时,手动阈值分割比较有效,同时,当有些前景图像和背景图像的灰度值太接近时会导致有些前景图像没有从背景中分离出来,出现图像失真。
实验六:数学形态学及其应用一.实验目的1.了解二值形态学的基本运算2.掌握基本形态学运算的实现3.了解形态操作的应用 二.实验基本原理腐蚀和膨胀是数学形态学最基本的变换,数学形态学的应用几乎覆盖了图像处理的所有领域,给出利用数学形态学对二值图像处理的一些运算。
膨胀就是把连接成分的边界扩大一层的处理。
而收缩则是把连接成分的边界点去掉从而缩小一层的处理。
二值形态学I(x,y), T(i,j)为 0/1图像腐蚀:[]),(&),(),)((),(0,j i T j y i x I AND y x T I y x E mj i ++=Θ==膨胀:[]),(&),(),)((),(0,j i T j y i x I OR y x T I y x D mj i ++=⊕== 灰度形态学 T(i,j)可取10以外的值 腐蚀: []),(),(min ),)((),(1,0j i T j y i x I y x T I y x E m j i -++=Θ=-≤≤膨胀:[]),(),(max ),)((),(1,0j i T j y i x I y x T I y x D m j i +++=⊕=-≤≤1.腐蚀Erosion:{}x B x B X x ⊂=Θ:1B 删两边 2B 删右上图5-1 剥去一层(皮)2.膨胀Dilation:{}X B x B X x ↑⊕:=1B 补两边2B 补左下 图5-2 添上一层(漆)3.开运算open :BX=)(X⊕BΘB4.闭close:∨X(X B)=BΘ⊕B三.实验内容与要求1) 读出文档中finger.tif 这幅图像,设计程序实现去除图像中的噪声;2) 设计程序,实现去除图rectangel.tif 中的矩形区域外的噪声,并填充矩形区域内部。
1I=imread('finger.tif');J=im2bw(I);se = strel('disk',1);K=imerode(J,se);subplot(1,2,1),imshow(I),title('原图')subplot(1,2,2), imshow(K),title('去噪图片')原图去噪图片2A=imread('rectangel.tif');A=imerode(A,SE);subplot(1,3,1),imshow(A)title('原始图像')subplot(1,3,3),imshow(B)title('填充内部')C=imdilate(B,SE);subplot(1,3,2),imshow(C)title('去除外部')去除外部原始图像填充内部四.实验结果分析阐述自己选用的二值形态学方法原理和效果原理:简单的腐蚀是消除物体的所有边界点的一种过程,其结果是使剩下的物体沿其周边比原物体小一个像素的面积。
简单的膨胀运算是将与某物体接触的所有背景点合并到该物体中的过程。
过程的结果是使物体的面积增大了相应数量的点,如果物体是圆的,它的直径在每次膨胀后将增大两个像素。