膨胀与腐蚀相关例程

膨胀与腐蚀相关例程
膨胀与腐蚀相关例程

腐蚀主要函数:cv2.erode(img,kernel,iterations)

膨胀主要函数:cv2.dilate(img,kernel,iterations)

开运算:opening = cv2.morphologyEx(img, cv2.MORPH_OPEN, kernel) 闭运算:closing = cv2.morphologyEx(img, cv2.MORPH_CLOSE, kernel)

1、腐蚀图像和膨胀图像例程:

#coding=utf-8

import cv2

import numpy as np

img = cv2.imread('D:/binary.bmp',0)

#OpenCV定义的结构元素

kernel = cv2.getStructuringElement(cv2.MORPH_RECT,(3, 3))

#腐蚀图像

eroded = cv2.erode(img,kernel)

#显示腐蚀后的图像

cv2.imshow("Eroded Image",eroded);

#膨胀图像

dilated = cv2.dilate(img,kernel)

#显示膨胀后的图像

cv2.imshow("Dilated Image",dilated);

#原图像

cv2.imshow("Origin", img)

#NumPy定义的结构元素

NpKernel = np.uint8(np.ones((3,3)))

Nperoded = cv2.erode(img,NpKernel)

#显示腐蚀后的图像

cv2.imshow("Eroded by NumPy kernel",Nperoded);

cv2.waitKey(0)

cv2.destroyAllWindows()

2、开运算和闭运算例程:

开运算和闭运算就是将腐蚀和膨胀按照一定的次序进行处理

#coding=utf-8

import cv2

import numpy as np

img = cv2.imread('D:/binary.bmp',0)

#定义结构元素

kernel = cv2.getStructuringElement(cv2.MORPH_RECT,(5, 5))

#闭运算

closed = cv2.morphologyEx(img, cv2.MORPH_CLOSE, kernel) #显示腐蚀后的图像

cv2.imshow("Close",closed);

#开运算

opened = cv2.morphologyEx(img, cv2.MORPH_OPEN, kernel) #显示腐蚀后的图像

cv2.imshow("Open", opened);

cv2.waitKey(0)

cv2.destroyAllWindows()

3、创建窗口滚动条实现动态腐蚀与膨胀的功能例程:import cv2

import numpy as np

import matplotlib.pyplot as plt

def nothing(x):

pass

https://www.360docs.net/doc/066510113.html,dWindow('image')

img=cv2.imread('images/111.jpg')

https://www.360docs.net/doc/066510113.html,dWindow('image')

cv2.createTrackbar('Er/Di','image',0,1,nothing)

#创建腐蚀或膨胀选择滚动条,只有两个值

cv2.createTrackbar('size','image',0,21,nothing)

#创建卷积核大小滚动条

while(1):

s = cv2.getTrackbarPos('Er/Di', 'image')

si=cv2.getTrackbarPos('size','image')

#分别接收两个滚动条的数据

k=cv2.waitKey(1)

kernel = np.ones((si,si), np.uint8)

#根据滚动条数据确定卷积核大小

erroding = cv2.erode(img, kernel)

dilation = cv2.dilate(img, kernel)

if k==27:

Break #esc键退出

if s==0:

cv2.imshow('image',erroding)

else:

cv2.imshow('image',dilation) #判断是腐蚀还是膨胀

北航数图实验报告四图像腐蚀和膨胀

北航数图实验报告四图像腐蚀和膨 胀 部门: xxx 时间: xxx 整理范文,仅供参考,可下载自行编辑

北京航空航天大学 数字图像处理实验报告 实验四:图像分割处理 学院 专业方向 班级 学号 学生姓名 指导教师 实验四图像分割处理实验 1.实验目的 <1)了解图像分割的基本原理,并利用图像分割算法进行图像分割处理; <2)掌握数学形态学的基本运算。 2.实验内容 <1)利用类间方差阈值算法实现图像的分割处理; <2)利用形态学处理进行处理结果修正。 3. 实验要求

<1)实验用图: <2)对输入图像进行平滑处理,以减小噪声对分割处理的影响; <3)利用类间方差阈值算法对滤波处理后图像进行分割处理,获取分割图像; <4)利用数学形态学中的腐蚀和膨胀运算处理,剔除分割处理结果中的一些细小的残余误分割点,在进行腐蚀和膨胀运算时可采用半径为r的圆形结构元素,注意比较选取不同r值时的处理结果。b5E2RGbCAP 四、实验代码 function STshiyan4_OpeningFcn(hObject, eventdata, handles, varargin>p1EanqFDPw I=imread('4.bmp'>。 I=rgb2gray(I>。 subplot(3,3,1>。

imshow(I>。 title('原图像'>。 IM=medfilt2(I>。%中值滤波 subplot(3,3,2>。 imshow(IM>。 title('中值滤波后图像'>。 function pushbutton1_Callback(hObject, eventdata, handles>DXDiTa9E3d I1=imread('4.bmp'>。 I1=rgb2gray(I1>。 T=Otsu(I1>。 IM1=medfilt2(I1>。 s=size(IM1>。 for m=1:s(1> for n=1:s(2> if IM1(m,n>>=T IM1(m,n>=255。 else IM1(m,n>=0。 end end end

数字图像处理-图像的腐蚀要点

1设计目的 1掌握图像腐蚀对图像的提取与识别的重要性,提高分析问题解决问题的能力,较深入地理解数字图像处理的基本概念、基础理论以及解决问题的基本思想方法 2熟悉数字图像处理的基本概念、原理、和方法,锻炼初步综合利用所学知识深入研究有关信息领域问题的能力,并未以后在此方向上的深入研究奠定基础。 3熟悉掌握一门计算机语言可以进行数字图像的应用与处理设计。

1熟悉掌握matlab仿真的软件的应用平台及使用方法。2理解图像腐蚀的原理。 3设计合理的程序,能实现图像的腐蚀。

3.1关于图像腐蚀 形态学运算只针对二值图像(二进制图像),并依据数学形态学(Mathermatical Morphogy)集合论方法发展起来的图像处理方法,起源于岩相对岩石结构的定量描述工作,在数字图像处理和机器视觉领域中得到了广泛的应用,形成了一种独特的数字图像分析方法和理论。数学形态学是图像处理和模式识领域的新方法,其基本思想是:用具有一定形态的结构元素去量度和提取图像中的对应形状,以达到图像分析和识别的目的。优势有以下几点:有效滤除噪声,保留图像中原有信息,算法易于用并行处理方法有效实现(包括硬件实现),基于数学形态学的边缘信息提取处理优于基于微分运算的边缘提取算法,提取的边缘比较平滑,提取的图像骨架也比较连续,断点少。 二值图像中的一种主要处理是对所提取的目标图形进行形态分析。而形态处理中最基本的是腐蚀与膨胀。腐蚀处理的作用是将目标图形收缩。运算效果取决于结构元素大小内容以及逻辑运算性质。 结构元素是指具有某种确定形状的基本结构元素,例如,一定大小的矩形,圆或者菱形等。 腐蚀处理可以表示成用结构元素对图像进行探测,找出图像中可以放下该结构元素的区域。腐蚀是一种消除边界点,使边界向内部收缩的过程。可以用来消除小且无意义的目标物。如果两目标物间有细小的连通,可以选取足够大的结构元素,将细小连通腐蚀掉[1]。 3.2腐蚀的算法 用3x3的结构元素,扫描图像的每一个像素; 用结构元素与其覆盖的二值图像做“与”操作; 如果都为1,结果图像的该像素为1。否则为0。 结果:使二值图像减小一圈。 把结构元素B平移a后得到Ba,若Ba包含于X,我们记下这个a点,所有满足上述条件的a点组成的集合称做X被B腐蚀(Erosion)的结果。用公式表示为:E(X)={a| Ba X}=X B,如图1.1所示。

金属腐蚀原理

3.3 金属腐蚀原理 3.3.1概述 从腐蚀的定义及分类,我们知道腐蚀主要是化学过程,我们可以把腐蚀过程分为两种可能的主要机理-----化学机理和电化学机理. 化学腐蚀是根据化学的多相反应机理,金属表面的原子直接与反应物(如氧﹑水﹑酸)的分子相互作用。金属的氧化和氧化剂的还原是同时发生的,电子从金属原子直接转移到接受体,而不是在时间或空间上分开独立进行的共轭电化学反应。 金属和不导电的液体(非电解质)或干燥气体相互作用是化学腐蚀的实例。最主要的化学腐蚀形式是气体腐蚀,也就是金属的氧化过程(与氧的化学反应),或者是金属与活性气态介质(如二氧化硫﹑硫化氢﹑卤素﹑蒸汽和二氧化碳等)在高温下的化学作用。 电化学腐蚀是最常见的腐蚀,金属腐蚀中的绝大部分均属于电化学腐蚀。如在自然条件下(如海水、土壤、地下水、潮湿大气、酸雨等)对金属的腐蚀通常是电化学腐蚀。 图3-11 铁的电化学腐蚀模型电化学腐蚀机理与纯化学腐蚀机理 的基本区别是:电化学腐蚀时,介质与金属的相互作用被分为两个独立的共轭反应。阳极过程是金属原子直接转移到溶液中,形成水合金属离子或溶剂化金属离子;另一个共轭的阴极过程是留在金属内

的过量 电子被溶液中的电子接受体或去极化剂接受而发生还原反应。左图即是铁的电化学腐蚀模型。(点击放大播放flash) 3.3.2金属腐蚀的电化学概念 1.电极反应及电极 相:由化学性质和物理性质一致的物质组成的、与系统的其他部分之间有界面隔开的集合叫做相。 电极系统:如果系统由两个相组成,一个相是电子导体(叫电子导体相),另一个相是离子导体(叫离子导体相),且通过它们互相接触的界面上有电荷在这两个相之间转移,这个系统就叫电极系统。 将一块金属(比如铜)浸在清除了氧的硫酸铜水溶液中,就构成了一个电极系统。在两相界面上就会发生下述物质变化: Cu (M)→Cu 2+(sol)+2e (M) 这个反应就叫电极反应,也就是说在电极系统中伴随着两个非同类导体相(Cu 和CuSO 4溶液)之间的电荷转移而在两相界面上发生的 化学反应,称为电极反应。这时将Cu 称为铜电极。 同样我们将一块金属放入某种离子导体相中,也会发生类似的电极反应:

MATLAB膨胀腐蚀(开,闭运算)源代码

clear,clc; h=imread('ceshi2.bmp'); i=im2bw(h); i1i=187; i1j=192; for ai=181:193 for aj=186:198 if(sqrt(double(ai-i1i)^2+double(aj-i1j)^2)<=5) i(ai,aj)=1;%定义圆形结构元素 end end end figure,imshow(i); i1=i; for i1i=6:205%用B腐蚀A for i1j=6:205 flag=0; if(i1i>=181&&i1i<=193&&i1j>=186&&i1j<=198) continue; else if(i(i1i,i1j)==1) for ai=i1i-5:i1i+5 for aj=i1j-5:i1j+5 if(i1(ai,aj)==0&&sqrt(double((ai-i1i)^2+(aj-i1j)^2))<=5) i(i1i,i1j)=0; flag=1; break; end end if(flag==1) break; end end end end end end figure,imshow(i); %在上面C的图像上用B进行膨胀 i2=i; for i1i=6:205%用B膨胀C for i1j=6:205 flag=0; if(i1i>=175&&i1i<=199&&i1j>=180&&i1j<=204)

continue; else for ai=i1i-5:i1i+5 for aj=i1j-5:i1j+5 if(i2(ai,aj)==1&&sqrt(double((ai-i1i)^2+(aj-i1j)^2))<=5) i(i1i,i1j)=1; flag=1; break; end end if(flag==1) break; end end end end end figure,imshow(i); %在上面D的图像上用B进行膨胀 i2=i; for i1i=6:205%用B膨胀D for i1j=6:205 flag=0; if(i1i>=175&&i1i<=199&&i1j>=180&&i1j<=204) continue; else for ai=i1i-5:i1i+5 for aj=i1j-5:i1j+5 if(i2(ai,aj)==1&&sqrt(double((ai-i1i)^2+(aj-i1j)^2))<=5) i(i1i,i1j)=1; flag=1; break; end end if(flag==1) break; end end end end end figure,imshow(i); %在上面E的图像上用B进行腐蚀 i1=i;

C 图像的膨胀和腐蚀

C++图像的膨胀和腐蚀 二值图像是一种简单的图像格式,它只有两个灰度级,即"0"表示黑色的像素点,"255"表示白色的像素点,至于如何从一幅普通的图像获得二值图像,请参考我近期在天极网上发表的《Visual C++编程实现图像的分割》一文。二值图像处理在图像处理领域占据很重要的位置,在具体的图像处理应用系统中,往往需要对于获得的二值图像再进一步进行处理,以有利于后期的识别工作。二值图像处理运算是从数学形态学下的集合论方法发展起来的,尽管它的基本运算很简单,但是却可以产生复杂的效果。常用的二值图像处理操作有许多方法,如腐蚀、膨胀、细化、开运算和闭运算等等。本文对这些内容作些研究探讨, 希望对爱好图像处理的朋友有所帮助。一、腐蚀和膨胀形态学是一门新兴科学,它的用途主要是获取物体拓扑和结果信息,它通过物体和结构元素相互作用的某些运算,得到物体更本质的形态。它在图像处理中的应用主要是: 1.利用形态学的基本运算,对图像进行观察和处理,从而达到改善图像质量的目的; 2.描述和定义图像的各种几何参数和特征,如面积,周长,连通度,颗粒度,骨架和方向性。限于篇幅,我们只介绍简单二值图像的形态学运算,对于灰度图像的形态学运算,有兴趣的读者可以看有关的参考书。

二值图像基本的形态学运算是腐蚀和膨胀,简单的腐蚀是消除物体的所有边界点的一种过程,其结果是使剩下的物体沿其周边比原物体小一个像素的面积。如果物体是圆的,它的直径在每次腐蚀后将减少两个像素,如果物体在某一点处任意方向上连通的像素小于三个,那么该物体经过一次腐蚀后将在该点处分裂为二个物体。简单的膨胀运算是将与某物体接触的所有背景点合并到该物体中的过程。过程的结果是使物体的面积增大了相应数量的点,如果物体是圆的,它的直径在每次膨胀后将增大两个像素。如果两个物体在某一点的任意方向相隔少于三个像素,它们将在该点连通起来。 下面给出具体的实现腐蚀和膨胀的函数代码: ////////////////////////////////二值图像腐蚀操作函数 BOOL ImageErosion(BYTE *pData,int Width,int Height) {//pData为图像数据的指针,Width和Height为图像的宽和高; BYTE* pData1; int m,n,i,j,sum,k,sum1;

MATLAB数字图像的腐蚀、填充、细化与粗化

《数字图像处理》 实验报告 姓名学号专业电子科学与工程学院实验5 一、实验目的 本次实验的处理对象是二值图像,关于二值图像的处理运算主要包括腐蚀和膨胀。它们是其他处理过程的主要运算环节。开闭操作通过腐蚀和膨胀的不同顺序组合,能够使图像平滑,开闭操作再组合能够成噪声滤波器。形态学中的击中击不中变换也应用了腐蚀的运算,用于判断图像中能否找到目标结构,这在图像细化中也得到了应用。 本次实验主要实现: 1.图像的边缘提取; 2.在边缘提取的基础上实现区域填充; 3.在区域填充的基础上实现图像细化; 4.在图像细化的基础上实现图像粗化。 在Matlab软件的自带函数库中其实本身就包含有以上处理过程的函数,为了深入理解每种处理过程的原理,本次实验所有运算都自行编写实现。 二、核心代码及运行后截图 主函数: %%读取图像 clear;clc; I=imread('onepiece.jpg'); I=im2bw(I);%转换为二值图像 [m,n]=size(I); %%边界提取 f=im2bw([0,1,0;1,1,1;0,1,0]);%腐蚀用的结构元素 F=fs(I,f); BW=im2bw(I-F);%用原图减去腐蚀获得边缘 figure;imshow(I);title('原图'); figure;imshow(F);title('腐蚀图像'); figure;imshow(BW);title('边界');

在上面的运行效果图上看来,由于原图选择的原因,周围一圈白线有一定宽度但不足够粗,大概只有2~3个像素宽度而腐蚀用元素大小为3×3,这导致腐蚀后图像留下的白线看起来残缺不全,用原图减去腐蚀后得到的边缘图像也在白线处有“粘在一块”的现象。只要使用更高一些分辨率的图片即可避免这样的情况。但出于后续试验的运行速度考虑,本实验就使用此图(300×300)。观察图像其他地方,有足够的像素宽度被腐蚀,由此提取的边缘也很清晰。 %%区域填充 I1=fillbw(BW,40,40);%fillbw函数实现指定坐标填充边缘内部,详见主函数后的各子函数 I1=I1|fillbw(BW,40,260);%为避免不必要的计算量,每次填充迭代次数为70 I1=I1|fillbw(BW,100,150);%逐次在图像中选择需填充区域中的起始点以完成填充 I1=I1|fillbw(BW,100,160); I1=I1|fillbw(BW,136,86); I1=I1|fillbw(BW,132,212); I1=I1|fillbw(BW,147,120); I1=I1|fillbw(BW,157,214); I1=I1|fillbw(BW,210,171); I1=I1|fillbw(BW,206,109); I1=I1|fillbw(BW,233,129); I1=I1|fillbw(BW,234,140); I1=I1|fillbw(BW,237,153); I1=I1|fillbw(BW,234,167); I1=I1|fillbw(BW,231,178); I1=I1|fillbw(BW,248,125); I1=I1|fillbw(BW,252,142); I1=I1|fillbw(BW,252,162);

图像的腐蚀和膨胀

图像的腐蚀和膨胀 研究背景和意义 依据数学形态学集合论方法发展起来的图像处理方法,在数字图像处理和机器视觉领域中得到了广泛的应用,形成了一种独特的数字图像分析和理论。数学形态学是图像处理和模式识别领域的新方法,其基本的思想是:用具有一定形态的结构元素去度量和提取图像中的对应形状,已达到图像分析和识别的目的。 优势有一下几点:有效滤除噪声,保留图像中原有信息,算法很容易用并行处理方法有效实现,基于数学形态学的边缘信息提取处理优于基于微分运算的边缘提取算法,提取的边缘比较平滑,提取的图像骨架也比较连续,断点很少。 二.原理 特殊领域运算形式——结构元素,在每个像素位置上与二值图像对应的区域进行特定的逻辑运算。运算结果是输出图像的相应像素。运算效果取决于结构元素大小、内容以及逻辑运算性质。 结构元素:膨胀和腐蚀操作的最基本组成部分,用于测试输出图像,通常要比待处理的图像小的多。二维平面结构元素由一个数值为0或1的矩阵组成。结构元素的原点(锚点)指定了图像中需要处理的像素范围,结构元素中数值为1的点决定结构元素的领域像素在进行膨胀或腐蚀操作时是否需要参与计算。 常见的形态学运算有腐蚀和膨胀两种: 腐蚀:删除对象边缘某些像素。

膨胀:给图像中的对象边缘添加像素。 三.算法及效果图 膨胀算法:用3X3的结构元素扫描图像的每一个像素,用结构元素与其覆盖的二值图像做“与”操作,如果都为0,结果图像的该像素点为0,否则为1。膨胀算法的效果是使二值图像扩大一圈。 腐蚀的算法:用3X3的结构元素,扫描图像的每一个像素点,用结构元素与其覆盖的二值图像做“与”操作,如果结果都为1,结果图像的该像素点为1,否则为0。 膨胀算法的结果:是二值图像减少一圈。 四.组合使用效果 先腐蚀后膨胀的过程:利用它可以消除小物体,在纤细点处分离物体,平滑较大物体边界,但同时并不会明显改变原来物体的面积。 先膨胀后腐蚀的过程:利用它可以填充物体内细小空洞,连接临近物体、平滑其边界,但同时并不会明显改变原来物体的面积。 通常由于噪声的影响,图像在阈值化后所得到的边界通常都很不平滑,物体区域具有一些噪声孔,而背景区域上散布着一些小的噪声物体,连续的开和闭运算可以有效的改善这种情况。而有时,我们需要经过多次腐蚀,然后再加上相同次数的膨胀,才能产生比较好的处理效果。可见图像的腐蚀与膨胀相结合有时可以使图像有较理想的处理效果。 图像处理分为多种,对于不同的图像腐蚀和膨胀的定义不同。 1. 形态学图像处理是在图像中移动一个结构元素,然后将结构元素

matlab数字图像处理膨胀和腐蚀.doc

基于Matlab的腐蚀和膨胀的边缘检测 一、实验目的: 掌握运用Matlab软件对灰度与二值图像的膨胀与腐蚀的处理方法。 二、实验环境(软件条件): Windws2000/XP MATLAB 7.x 三、实验内容: 1、图像膨胀的Matlab实现 ①实验原理: 膨胀:给图像中的对象边界添加像素。 在操作中,输出图像中所有给定像素的状态都是通过对输入图像的相应像素及邻域使用一定的规则进行确定。在膨胀操作时,输出像素值是输入图像相应像素邻域内所有像素的最大值。在二进制图像中,如果任何像素值为1,那么对应的输出像素值为1。 可以使用imdilate函数进行图像膨胀,imdilate函数需要两个基本输入参数,即待处理的输入图像和结构元素对象。结构元素对象可以是strel函数返回的对象,也可以是一个自己定义的表示结构元素邻域的二进制矩阵。此外,imdilate 还可以接受两个可选参数:PADOPT(padopt) ——影响输出图片的大小、PACKOPT(packopt).——说明输入图像是否为打包的二值图像(二进制图像)。 ②实验步骤: A、首先创建一个包含矩形对象的二值图像矩阵。 R=zeros(9,10); R(4:6,4:7) =1 R = 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 B、使用一个3×3的正方形结构元素对象对创建的图像进行膨胀。

腐蚀膨胀算法详细解释

形态学运算中腐蚀,膨胀,开运算和闭运算(针对二值图而言) 6.1 腐蚀 腐蚀是一种消除边界点,使边界向内部收缩的过程。可以用来消除小且无意义的物体。 腐蚀的算法: 用3x3的结构元素,扫描图像的每一个像素 用结构元素与其覆盖的二值图像做“与”操作 如果都为1,结果图像的该像素为1。否则为0。 结果:使二值图像减小一圈 把结构元素B平移a后得到Ba,若Ba包含于X,我们记下这个a点,所有满足上述条件的 a点组成的集合称做X被B腐蚀(Erosion)的结果。用公式表示为:E(X)={a| Ba X}=X B,如图6.8所示。 图6.8 腐蚀的示意图 图6.8中X是被处理的对象,B是结构元素。不难知道,对于任意一个在阴影部分的点a,Ba 包含于X,所以X被B腐蚀的结果就是那个阴影部分。阴影部分在X的范围之内,且比X小,就象X被剥掉了一层似的,这就是为什么叫腐蚀的原因。 值得注意的是,上面的B是对称的,即B的对称集Bv=B,所以X被B腐蚀的结果和X被Bv腐蚀的结果是一样的。如果B不是对称的,让我们看看图6.9,就会发现X被B腐蚀的结果和X被Bv腐蚀的结果不同。

图6.9 结构元素非对称时,腐蚀的结果不同 图6.8和图6.9都是示意图,让我们来看看实际上是怎样进行腐蚀运算的。 在图6.10中,左边是被处理的图象X(二值图象,我们针对的是黑点),中间是结构元素B,那个标有origin的点是中心点,即当前处理元素的位置,我们在介绍模板操作时也有过类似的概念。腐蚀的方法是,拿B的中心点和X上的点一个一个地对比,如果B上的所有点都在X的范围内,则该点保留,否则将该点去掉;右边是腐蚀后的结果。可以看出,它仍在原来X的范围内,且比X包含的点要少,就象X被腐蚀掉了一层。 图6.10 腐蚀运算 图6.11为原图,图6.12为腐蚀后的结果图,能够很明显地看出腐蚀的效果。 图6.11 原图

数字图像处理腐蚀与膨胀小程序

%%%%%%%%%%%%%%%%下面为用于处理的样本‘圆’%%%%%%%%%%%%%%%%%%%%%%%%% R=8;%%半径R S=zeros(2*R); for x1=-R:R-1; for y1=-R:R-1; if round(sqrt(x1^2+y1^2))<=R%%圆心在原点的圆的表达函数 %%对圆心在原点的圆进行平移,使x,y都为非负数 x=R+x1+1; y=R+y1+1; S(x,y)=1; end end end figure(1),imshow(S); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%下面为要处理的图形%%%%%%%%%%%%%%%%%%%%%%%%% W=256;L=512; %%定义边界 X=zeros(W,L); for i=1:128 for j=1:256 if i<=15|i>=114 if j<103|j>153 X(i+W/4,j+L/4)=1; end else if (i>15&i<=56)|(i>=72&i<114) if (j>50&j<103)|j>153 X(i+W/4,j+L/4)=1; end else if i>56&i<72 if j>50&j<206 X(i+W/4,j+L/4)=1; end end end end end end figure(2),imshow(X); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%下面用S对X进行腐蚀操

第一章腐蚀基本原理

1、腐蚀原电池原电池是腐蚀原电池的基础。腐蚀原电池的实质是一个短路的原电池。腐蚀 原电池的形成条件:阳极阴极电解质溶液电路。阳极过程:金属溶解过程,以离子形式转入溶液,并把电子留在金属上,又称为氧化过程。M M n+ + ne。电子转移:在电路中电子由阳极流至阴极。 ?阴极过程:接受电子的还原过程。 ?腐蚀原电池工作所包含的三个基本过程既是互相独立、又是彼此联系的。只要其中 一个过程受到阻滞不能进行,则其他两个过程也将停止,金属腐蚀过程也就停止了。 ?①、析氢腐蚀②、吸氧腐蚀 2、腐蚀原电池与一般原电池的比较:二者结构和原理无本质的区别。腐蚀原电池是一种短路的原电池,有电流但不能利用,以热的形式散失,其直接结果是造成了金属的腐蚀。 3、宏电池:用肉眼能明显看到的由不同电极所组成的腐蚀原电池。形成条件分类:电偶腐蚀电池:不同金属与同一电解溶液接触,如钢管本体金属与焊缝金属,镀锌钢管与黄铜阀。浓差电池:同一金属不同部位接触不同的电解质。造成不同区域电位不同,可分为氧浓差电池和盐浓差电池。温差电池:同一金属在同一电解质溶液中,由于各部位温度不同而构成的腐蚀电池。如换热器。 4、微电池:由金属表面上许多微小的电极所组成的腐蚀原电池叫微电池。形成微电池的基本原因:金属化学成分的不均匀性;金属组织的不均匀:晶粒晶界的电位不同;金属物理状态不均匀:变形和应力不均匀;金属表面膜的不均匀;土壤微结构的差异。 5、电极:电子导体(金属)与离子导体(液、固电解质)接触,并且有电荷在两相之间迁移而发生氧化还原反应的体系,称为电极。电极反应:在电极与溶液界面上的进行的电化学反应称为电极反应。双电层:当金属浸入电解质溶液中时,其表面离子与溶液中的离子相互作用,使界面处金属和溶液分别带异电荷,即双电层(electrostatic double layer, double electrode layer)。电极电位:双电层两侧的电位差,即金属与溶液之间的电位差称为电极电位。1.双电层的建立(establishment of double electrode layer)通常有两种双电层:(1)活性强金属:金属表面带负电荷,溶液带正电荷。(2)活性弱金属(贵金属):金属表面带正电荷,溶液带负电荷。特殊双电层:吸附双电层。2.双电层的结构1双电层是有紧密层和分散层两大部分组成。2电极电位是金属表面与扩散层末端的电位差。3电极电位的大小是由双电层上金属表面的电荷密度(单位面积上的电荷数)决定的。 6、电极电位的测量方法:将待测金属电极相对一个参比电极测出该腐蚀原电池的电动势(电压),为相对的电极电位值。氢标准电极电位(SHEP):是指被测电极与标准氢电极组成的腐蚀原电池的电位差。标准氢电极(SHE):1atm,25℃,氢离子活度为1,进行氢电离可逆反应的电极体系。人为规定氢的标准电极电位E0=0。电动序:电位越低,金属的负电性越强,离子化越大,腐蚀趋势就更加严重。其他常用的参比电极(reference electrode)1)饱和甘汞电极(SCE)2)铜/硫酸铜电极(CSE)。 7、电位—PH图:是以纵坐标表示电极反应的平衡电极电位(相对于:SCE),横坐标表示溶液pH值的热力学平衡图。腐蚀区,非腐蚀区,钝化区。

Matlab基于腐蚀和膨胀的边缘检测

Matlab基于腐蚀和膨胀的边缘检测 文/天神 一.课题背景: 形态学运算只针对二值图像(二进制图像),并依据数学形态学(Mathermatical Morphogy)集合论方法发展起来的图像处理方法,起源于岩相对岩石结构的定量描述工作,在数字图像处理和机器视觉领域中得到了广泛的应用,形成了一种独特的数字图像分析方法和理论。数学形态学是图像处理和模式识领域的新方法,其基本思想是:用具有一定形态的结构元素去量度和提取图像中的对应形状,以达到图像分析和识别的目的。优势有以下几点:有效滤除噪声,保留图像中原有信息,算法易于用并行处理方法有效实现(包括硬件实现),基于数学形态学的边缘信息提取处理优于基于微分运算的边缘提取算法,提取的边缘比较平滑,提取的图像骨架也比较连续,断点少。 二、课题相关原理: 形态学基本运算: 特殊领域运算形式——结构元素(Structure Element),在每个像素位置上与二值图像对应的区域进行特定的逻辑运算。运算结果是输出图像的相应像素。运算效果取决于结构元素大小内容以及逻辑运算性质。 常见形态学运算有腐蚀(Erosion)和膨胀(Dilation)两种。 集合论是数学形态学的基础。有集合、元素、子集、并集、补集、位移、映像(镜像对称)、差集等集合的基本概念。 对象和结构元素的3种关系:『对象X(Object)、结构元素B(Structure Element)』 B include in X 包含于、B hit X 击中(不全包含)、B miss X 击不中(不包含) 平移、对称集:Bx=Uy{x+y} B^=Uy{-y} 腐蚀:一种消除边界点,使边界向内部收缩的过程。利用它可以消除小而且无意义的物体。B对X腐蚀所产生的二值图像E是满足以下条件的点(x,y)的集合:如果B的原点平移到点(x,y),那么B将完全包含于X中。 膨胀:将与物体接触的所有背景点合并到该物体中,使边界向外部扩张的过程。利用它可以填补物体中的空洞。B 对X膨胀所产生的二值图像D是满足以下条件的点(x,y)的集合:如果B的原点平移到点(x,y),那么它与X的交集非空。 腐蚀和膨胀运算中存在对偶原理:X⊕B,它是所有满足以下条件的点X'的集合:在B中存在一点y,而且在X中存在一点x,使得x'=x+y。 基本运算:1.开运算(先腐蚀后膨胀的过程):利用它可以消除小物体,在纤细点处分离物体,平滑较大物体边界,但同时并不明显改变原来物体的面积。OPEN(X,B) 2.闭运算(先膨胀后腐蚀的过程):利用它可以填充物体内细小空洞,连接临近物体、平滑其边界,但同时并不明显改变原来物体的面积。CLOSE(X,B) 通常由于噪声的影响,图像在阈值化后所得到的边界通常都很不平滑,物体区域具有一些噪声孔,而背景区域上散布着一些小的噪声物体,连续的开和闭运算可以有效的改善这种情况,而有时,我们需要经过多次腐蚀之,后再加上相同次数的膨胀,才能产生比较好的处理效果。 另外两种是3.击中,击不中变换HMT(模板严格匹配)以及4.边缘和骨架(Boundary and Skeleton) 三、腐蚀和膨胀的Matlab实现: 腐蚀:删除对象边界某些像素。 膨胀:给图像中的对象边界添加像素。 在操作中,输出图像中所有给定像素的状态都是通过对输入图像的相应像素及邻域使用一定的规则进行确定。在膨胀操作时,输出像素值是输入图像相应像素邻域内所有像素的最大值。在二进制图像中,如果任何像素值为1,那么对应的输出像素值为1;而在腐蚀操作中,输出像素值是输入图像相应像素邻域内所有像素的最小值。在二进制图像中,如果任何一个像素值为0,那么对应的输出像素值为0。

腐蚀、膨胀、开运算、闭运算(特制材料)

1、实验目的 学习常见的数学形态学运算基本方法,了解腐蚀、膨胀、开运算、闭运算取得的效果,培养处理实际图像的能力,并为课堂教学提供配套的实践机会。 2、实验要求 利用MatLab工具箱中关于数学形态学运算的函数,计算本指导书中指定二值图像进行处理。 3、实验设备与软件 1.LC-PC计算机系统 2.MatLab软件/语言包括图像处理工具箱(Image Processing Toolbox) 3.实验所需要的图片 4. 4、实验内容与步骤 1.调入并显示图像Plane 2.jpg; 2.选取合适的阈值,得到二值化图像Plane2-2.jpg; 3.设置结构元素; 4.对得到的二值图像Plane2-2.jpg进行腐蚀运算; 5.对得到的二值图像Plane2-2.jpg进行膨胀运算; 6.对得到的二值图像Plane2-2.jpg进行开运算; 7.对得到的二值图像Plane2-2.jpg进行闭运算; 8.将两种处理方法的结果作比较; 5、实验过程及结果 程序代码: 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);title('原图'); figure,imshow(BW1);title('膨胀'); figure,imshow(BW2);title('腐蚀'); figure,imshow(BW3);title('开运算'); figure,imshow(BW4);title('闭运算');

图像的膨胀与腐蚀运算比较 zh

设计题目:图像的膨胀与腐蚀运算比较 学院: 班级: 学号: 设计人: 指导老师: 设计时间:2014年12月14日

图像的膨胀与腐蚀运算比较 一、实验目的: 1.了解膨胀与腐蚀的基本运算; 2.掌握膨胀与腐蚀的基本方法; 3.编写Matlab程序实现膨胀与腐蚀。 二、实验要求: 1.使用imdilate函数进行图像膨胀,并观察膨胀后图像的变化; 2.使用imerode函数进行图像腐蚀,并观察腐蚀后图像的变化; 三、实验原理: 膨胀:将于物体接触的所有背景点合并到该物体中,使边界向外部扩张的过程,利用它可以填补物体中的空洞,以及消除包含在目标 区域中的小颗粒噪声。膨胀处理是腐蚀处理的对偶,可定义如下: 膨胀是以得到B的相对与它自身原点的映像并且由z对映像进行移 wèi yíz的集合,这样,和A至少有 位为基础的。A被B膨胀是所有位移 一个元素是重叠的。我们可以把上式改写为: 结构元素B可以看作一个卷积模板,区别在于膨胀是以集合运算为 基础的,卷积是以算术运算为基础的,但两者的处理过程是相似的。 ⑴用结构元素B,扫描图像A的每一个像素; ⑵用结构元素与其覆盖的二值图像做“与”操作; ⑶如果都为0,结果图像的该像素为0。否则为1; 膨胀(dilation)可以看做是腐蚀的对偶运算,其定义是:把结构元素 B平移a后得到Ba,若Ba击中X,我们记下这个a点。所有满足上述条件的a点组成的集合称做X被B膨胀的结果。用公式表示为:

D(X)={a | Ba↑X}=X B,图中X是被处理的对象,B是结构元素,不难知道,对于任意一个在阴影部分的点a,Ba击中X,所以X被B 膨胀的结果就是那个阴影部分。阴影部分包括X的所有范围,就象X膨胀了一圈似的,这就是为什么叫膨胀的原因。同样,如果B不是对称的,X被B膨胀的结果和X被 Bv膨胀的结果不同。让我们来看看实际上是怎样进行膨胀运算的。在图中,左边是被处理的图象X(二值图象,我们针对的是黑点),中间是结构元素B。膨胀的方法是,拿B的中心点和X上的点及X周围的点一个一个地对,如果B上有一个点落在X的范围内,则该点就为黑;右边是膨胀后的结果。可以看出,它包括X的所有范围,就象X膨胀了一圈似的。 腐蚀:是一种消除边界点,使边界点向内部收缩的过程,可以用来消除小且无意义的目标物。如果两目标物间有细小的联通,可以选取足够大的结构元素,将细小连通腐蚀掉。可定义如下: 对Z中的集合A和B,B对A进行腐蚀的整个过程如下: (1)用结构元素B,扫描图像A的每一个像素; (2)用结构元素与其覆盖的二值图像做“与”操作; (3)如果都为1,结果图像的该像素为1。否则为0; 腐蚀处理的结果是使原来的二值图像减小一圈。 其中,X是被处理的对象,B是结构元素。不难知道,对于任意一个在阴影部分的点a,Ba 包含于X,所以X被B腐蚀的结果就是那个阴影部分。阴影部分在X的范围之内,且比X小,就象X被剥掉了一层似的,这就是为什么叫腐蚀的原因。值得注意的是,上面的B 是对称的,即B的对称集Bv=B,所以X被B腐蚀的结果和X被 Bv 腐蚀的结果是一样的。如果B不是对称的,让我们看看图6.9,就会发现X被B腐蚀的结果和X被 Bv腐蚀的结果不同。

数字图像处理实验报告实验三

数字图像处理实验报告实验三

中南大学数字图像处理实验报告 实验三数学形态学及其应用

实验三 数学形态学及其应用 一.实验目的 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 m j i ++=Θ== 膨胀:[]),(&),(),)((),(0 ,j i T j y i x I OR y x T I y x D m j 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.开运算

数字图像处理技术试题答案

数字图像处理技术试题库 一、单项选择题:(本大题 小题, 2分/每小题,共 分) 1.自然界中的所有颜色都可以由()组成 A.红蓝绿 B.红黄绿 C.红黄蓝绿 D.红黄蓝紫白 2. 有一个长宽各为200个象素,颜色数为16色的彩色图,每一个象素都用R(红)、G(绿)、B(蓝)三个分量表示,则需要()字节来表示 A.100 B.200 C.300 D. 400 3.颜色数为16种的彩色图,R(红)、G(绿)、B(蓝)三个分量分别由1个字节表示,则调色板需要()字节来表示 A.48 B.60 C.30 D. 40 4.下面哪一个不属于bmp 文件的组成部分 A .位图文件信息头 B. 位图文件头 C.调色板 D. 数据库标示 5.位图中,最小分辨单元是 A.像素 B.图元 C.文件头 D.厘米 6.真彩色的颜色数为 A.888?? B. 161616?? C.128128128?? D.256256256?? 7.如果图像中出现了与相邻像素点值区别很大的一个点,即噪声,则可以通过以下方式去除 A.平滑 B.锐化 C. 坐标旋转 D. 坐标平移 8.下面哪一个选项不属于图像的几何变换() A.平移 B.旋转 C. 镜像 D. 锐化 9.设平移量为x x t t (,),则平移矩阵为() A .1 0 00 1 0 1x y t t ?????????? B. 1 0 00 -1 0 1x y t t ??-???????? C. 1 0 00 1 0 - 1x y t t ????????-?? D.1 0 00 1 0 - -1x y t t ?????????? 10.设旋转角度为a ,则旋转变换矩阵为() A .cos() sin() 0sin() cos() 00 0 1a a a a -?????????? B .cos() sin() 0sin() cos() 00 0 1a a a a ?????????? C .sin() cos() 0 sin() cos() 0 0 0 1a a a a -?????????? D .cos() sin() 0sin() cos() 00 0 1a a a a -????-?????? 11.下面哪一个选项是锐化模板 A .-1 -1 -1-1 9 -1-1 -1 -1?????????? B .-1 -1 -1-1 -9 -1-1 -1 -1?????????? C .-1 -1 -1-1 8 -1-1 -1 -1?????????? D .-1 -1 -1-1 6 -1-1 -1 -1?????????? 12.真彩色所能表示的颜色数目是 A .128128? B .256256256 ?? C .256 D .6059

不锈钢的点腐蚀机理

不锈钢的点腐蚀机理 在金属表面局部地方出现向深处发展的腐蚀小孔,其余表面不腐蚀或腐蚀很轻微,这种形态成为小孔腐蚀,简称点蚀。金属腐蚀按机理分为化学腐蚀和电化学腐蚀。点腐蚀属于电化学腐蚀中的局部腐蚀。一种点蚀是由局部充气电池产生,类似于金属的缝隙腐蚀。另一种更常见的点蚀发生在有钝化表现或被高耐蚀性氧化物覆盖的金属上。 4.1 电化学腐蚀的基本原理 通过原电池原理可以更好地说明电化学腐蚀机理。当2种活泼性不同的金属(如铜和锌)浸入电解质溶液,2种金属间将产生电位差,用导线连接将会有电流通过,在此过程中活泼金属(锌)将被消耗掉,也就是被电化学腐蚀。不同于化学腐蚀(如金属在空气中的氧化,锌在酸溶液中的析氢),电化学腐蚀一定有电流产生,并且电流量的大小直接与腐蚀物的生 成量相关,即电流密度越大腐蚀速度越快。 各种金属在电解质溶液中的活泼程度可用其标准电极电位表示,即金属与含有单位活度(活度与浓度正相关,在浓度小于10-3mol/L时认为两者值相同)的金属离子,在温度298K (25℃),气体分压1.01MPa下的平衡电极电位。 标准电极电位越低,金属或合金越活泼,在与高电位金属组成电偶对时更易被腐蚀。由此可见,决定金属标准电极电位的因素除了金属的本质外还有:溶液金属离子活度(浓度)、温度、气体分压。另外一个重要影响因素是金属表面覆盖着的薄膜。除了金、铂等极少数贵金属外,绝大多数金属在空气中或水中可以形成具有一定保护作用的氧化膜,否则大部分金属在自然界就无法存在。金属表面膜的性质对其腐蚀发生及腐蚀速度都有着重要影响。 4.2 不锈钢的耐腐蚀原理 不锈钢的重要因素在于其保护性氧化膜是自愈性的(例如它不象选择性氧化而形成的那些保护性薄膜),致使这些材料能够进行加工而不失去抗氧化性。合金必须含有足够量的铬以形成基本上由Cr2O3组成的表皮,以便当薄膜弄破时有足够数目的铬(Cr3+)阳离子重新形成薄膜。如果铬的比例低于完全保护所需要的比例,铬就溶解在铁表面形成的氧化物中而无法形成有效保护膜。起完全保护作用所需的铬的比例取决于使用条件。在水溶液中,需要12%的铬产生自钝化作用形成包含大量Cr2O3的很薄的保护膜。在气态氧化条件下,低于1000℃时,12%的铬有很好的抗氧化性,在高于1000℃时,17%的铬也有很好的抗氧化性。当金属含铬量不够或某些原因造成不锈钢晶界出现贫铬区的时候,就不能形成有效的保护性膜。 4.3 氯离子对不锈钢钝化膜的破坏 处于钝态的金属仍有一定的反应能力,即钝化膜的溶解和修复(再钝化)处于动平衡状态。当介质中含有活性阴离子(常见的如氯离子)时,平衡便受到破坏,溶解占优势。其原因是氯离子能优先地有选择地吸附在钝化膜上,把氧原子排挤掉,然后和钝化膜中的阳离子结合成可溶性氯化物,结果在新露出的基底金属的特定点上生成小蚀坑(孔径多在20~30μm),这些小蚀坑称为孔蚀核,亦可理解为蚀孔生成的活性中心。氯离子的存在对不锈钢的钝态起到直接的破环作用。图1表征了金属钝化区随氯离子浓度增大而减小。 A-不存在氯离子;B-低浓度氯离子;C-高浓度氯离子 图1 对于呈现出钝化性的金属,氯离子对阳极极化曲线的作用[2] 图1是对含不同浓度氯离子溶液中的不锈钢试样采取恒电位法测量的电位与电流关系曲线,从中看出阳极电位达到一定值,电流密度突然变小,表示开始形成稳定的钝化膜,其电阻比较高,并在一定的电位区域(钝化区)内保持。图中显示,随着氯离子浓度的升高,其临界电流密度增加,初级钝化电位也升高,并缩小了钝化区范围。对这种特性的解释是在钝化电

相关文档
最新文档