一种基于计算机视觉的物体形状辨别方法
- 格式:doc
- 大小:25.50 KB
- 文档页数:4
一种基于计算机视觉的物体形状辨别方法
摘要:本文主要提出一种基于计算机视觉的物体形状辨别方法,采用链码法,能快速辨识出物体的形状,分辨出物体形状的细微差别,判断物体是否变形。
能在一些不适合人工作业的危险的电力生产环境下或大批量工业生产过程中替代人工视觉,具有一定的意义。
关键词:计算机视觉物体形状辨别信号处理链码功率密度谱
1 引言
本文提出一种基于计算机视觉的物体形状辨别方法,以链码法为基础,通过采集物体的图像,计算出物体的半径曲线,再进行fft变换求出其功率密度谱,通过对功率密度谱的变换与分析,实现物体的形状辨别。
该方法能快速辨识处物体形状,甚至能分辨出细微的差异,且不受物体形状大小的影响。
2 图像预处理
通过对采集到的图像进行预处理,能提高对比度,抑制背景而突出形状特征,把图像变成便于后续处理的形式,从而能更准确的辨别物体形状。
图像的预处理要经过以下几个步骤。
2.1 彩色图像转换为灰度图像
由于输入图像可能是索引图像,也可能是灰度图像,所以一律把图像先转换为灰度图像,以便对图像做进一步处理。
在matlab中,利用rgb2gray,ind2gray 等函数可以很方便的进行图像类型转换。
2.2图像平滑
对图像进行平滑处理,采用中值滤波法。
二维中值滤波的窗口形状和尺寸对滤波的效果影响较大,不同的图像内容和不同的应用要求,往往采取不用的窗口形状尺寸。
本方法所处理的图像一般具有缓变的较长轮廓线,宜采用一个5乘以5的方形窗口。
2.3图像的二值化
要找到物体边界的链码,首先要把目标图像转换为二值图像。
采用双峰法确定阈值。
能有效的对图像进行二值化,从而可以提高辨别的准确率。
2.4 形态滤波器
为了求得物体的质心,必须保证物体里面没有噪声点。
因而最后一个步骤是
对图像进行形态滤波,以平滑图像边界,滤除目标内比结构元素小的噪声块。
先对图像进行开运算,再进行闭运算就可以构成滤除图像噪声的形态滤波器,能滤除不需要的噪声块。
3 基于链码的形状辨别
链码法主要内容是求出物体轮廓的半径曲线。
在物体边界上选一点,以该点为起点,根据物体边缘的链码分别求出各边界点到质心的距离,形成一条以物体边界点的点序为横坐标,以其半径为纵坐标的曲线,即为图像的半径曲线。
3.1质心
在matlab中,用imfeature函数可以很轻易的提取出物体的质心,但是它并不是十分的精确,这里用物体的区域矩特征来求取物体的质心。
区域矩特征是利用力学中矩的概念,将区域内部的象素作为质点,象素的坐标作为力臂,从而以各阶矩的形式来表示区域形状特征的一种描述子。
物体图像质心的坐标可由图像的一阶矩除以零阶矩求得。
3.2 半径
设物体边缘点的坐标(ik,jk),1≤k≤N,N为物体边缘点数,则边缘点(ik,jk)与质心(m,n)间的距离Dk可以表示为:
(1)
3.3链码
求物体边界的链码,首先要对物体边缘进行跟踪。
沿边缘线跟踪边缘点求出边缘点之间的方向码,即可得出物体的边界链码[2]。
其算法步骤如下。
1、先按从上到下,从左到右的顺序扫描图像,寻找没有标记跟踪结束标记的第一个边界起始点A1,A1是具有最小行值和列值的边界点。
定义一个扫描方向变量dir 1,该变量用于记录上一步中沿着前一个边界点到当前边界点的移动方向,即方向码。
2、按逆时针方向搜索当前像素的3*3领域中第一个与当前像素数值相同的像素的边界点An,同时更新dir n。
3、如果An等于第二个边界点A2,且前一个边界点An-1等于第一个边界点A1。
则停止搜索,结束跟踪,否则重复第二步继续搜索。
4、由各个边界点A1,A2,A3,…,An,得出的dir 1,dir 1,dir 3,…dir n 构成的边界链码就是我们要求的链码。
并记录下起始点A1的坐标(X1,Y1)。
3.4半径曲线
根据之前所求出的质心坐标、链码等信息之后,就可以求物体轮廓的曲线半径了。
其算法步骤如下。
1、根据式(1)求出第一点A1(X1,Y1)与质心(m,n)的欧氏距离D1。
即为该点的半径。
2、根据A1与A2的方向码dir 1,可求出A2的坐标[2](X2,Y2)并计算A2(X2,Y2)与质心(m,n)的欧氏距离D2。
3、重复步骤2直到最后一点An。
这样就得出一条以物体轮廓点An的点序n为横坐标,以其对应的点与质心的欧氏距离Dn为纵坐标的曲线。
任何物体的半径曲线都是固定的,他们只与起形状有关,不会因大小、颜色等因素而改变。
对半径曲线做进一步的处理,就可以更有效的辨别物体的形状,区分形状的改变,监控是否有变形等。
4 基于FFT的数据处理
把半径曲线看成一维的周期数字能量信号,就能够从功率密度普的角度对其进行分析,而物体的形状信息也可以转换并承载于半径曲线信号的功率密度普中,从而可以方便地对形状进行分析对比。
此时,其形状信息就承载于各次谐波分量中,高次数谐波分量数值越大,代表其形状越复杂。
滤出信号中的基波分量后,对信号进行归一化处理,最后进行FFT变换,即可得出信号的功率密度普函数。
不同形状的物体能量集中的频段是不同的,每个标准形状都有其特定的波形,而物体形状越复杂,功率密度普中各频段的能量就越大,当物体形状发生改变时,其功率密度谱也发生改变。
因此,把物体功率密度谱与标准形状密度谱进行对比,就可以识别出物体的形状来;通过对物体功率谱前后的对比,即可检测出物体是否发生形状的改变。
5 结束语
本文采用了区别于图像识别传统坐标法的链码法,从频谱的角度对图像的形状进行识别。
当然,算法并未完美,还有待进一步完善。
参考文献:
[1]周金萍.编著matlab6.5图形图像处理与应用实例,科学出版社2003.
[2]冈萨雷斯(Gonzalez.R.C),数字图像处理,第二版,电子工业出版社,2003.。