图像目标提取及特征计算.docx

上传人:b****8 文档编号:10863487 上传时间:2023-02-23 格式:DOCX 页数:11 大小:51.16KB
下载 相关 举报
图像目标提取及特征计算.docx_第1页
第1页 / 共11页
图像目标提取及特征计算.docx_第2页
第2页 / 共11页
图像目标提取及特征计算.docx_第3页
第3页 / 共11页
图像目标提取及特征计算.docx_第4页
第4页 / 共11页
图像目标提取及特征计算.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

图像目标提取及特征计算.docx

《图像目标提取及特征计算.docx》由会员分享,可在线阅读,更多相关《图像目标提取及特征计算.docx(11页珍藏版)》请在冰豆网上搜索。

图像目标提取及特征计算.docx

图像目标提取及特征计算

摘要之吉白夕凡创作

对图像进行研究和应用时,人们往往对图像中的某些部分感兴趣,这些部分常被称为目标或对象

目标或对象特征提取是计算机视觉和图像处理中的一个概念。

它指的是使用计算机提取图像信息,决定每个图像的点是否属于一个图像特征。

特征提取的结果是把图像上的点分为分歧的子集,这些子集往往属于孤立的点、连续的曲线或者连续的区域。

本课设需要解决的问题是,利用阈值分割方法,对该图像进行分割,得到提取那个目标后的二值图像,计算该目标的面积、周长、中心坐标等三个参数。

阈值分割采取的是全局阈值分割方法,而面积、周长的计算则是先通过将图像转换成二值图像,在通过计算二值图像像素点的方式求取。

关键词:

阈值分割,边沿检测,像素点

1绪论

目标的特征提取是图像处理和自动目标识别(ATR)中的一个重要的研究课题,是解决图像识别问题的难点和关键。

特征提取是图象处理中的一个初级运算,也就是说它是对一个图像进行的第一个运算处理。

它检查每个像素来确定该像素是否代表一个特征。

假如它是一个更大的算法的一部分,那么这个算法一般只检查图像的特征区域。

作为特征提取的一个前提运算,输入图像一般通过高斯模糊核在尺度空间中被平滑。

此后通过局部导数运算来计算图像的一个或多个特征。

有时,假如特征提取需要许多的计算时间,而可以使用的时间有限制,一个高条理算法可以用来控制特征提取阶层,这样仅图像的部分被用来寻找特征。

由于许多计算机图像算法使用特征提取作为其初级计算步调,因此有大量特征提取算法被发展,其提取的特征各种各样,它们的计算复杂性和可重复性也非常分歧。

 

2设计原理

2.1经常使用的特征提取的方法

提取图像空间关系特征可以有两种方法:

一种方法是首先对图像进行自动分割,划分出图像中所包含的对象或颜色区域,然后根据这些区域提取图像特征,并建立索引;另一种方法则简单地将图像均匀地划分为若干规则子块,然后对每个图像子块提取特征,并建立索引。

本课程设计是采取的第一种方法,即先对该图像进行分割,得到提取那个目标后的二值图像,计算该目标的面积、周长、中心坐标等三个参数。

阈值分割采取的是全局阈值分割方法,而面积、周长的计算则是先通过将图像转换成二值图像,在通过计算二值图像像素点的方式求取。

其中计算周长时,先需要对二值图像进行边沿检测,然后再统计其像素点。

2.2阈值分割原理

图像阈值化分割是一种最经常使用,同时也是最简单的图像分割方法,它特别适用于目标和布景占据分歧灰度级范围的图像[1]。

它不但可以极大的压缩数据量,而且也大大简化了分析和处理步调,因此在很多情况下,是进行图像分析、特征提取与模式识别之前的需要的图像预处理过程。

图像阈值化的目的是要依照灰度级,对像素集合进行一个划分,得到的每个子集形成一个与现实景物相对应的区域,各个区域内部具有一致的属性,而相邻区域规划有这种一致属性。

这样的划分可以通过从灰度级出发选取一个或多个阈值来实现。

阈值分割思想和原理

阈值分割法是一种基于区域的图像分割技术,其基来源根基理是:

通过设定分歧的特征阈值,把图像象素点分为若干类。

经常使用的特征包含:

直接来自原始图像的灰度或黑色特征;由原始灰度或黑色值变换得到的特征。

设原始图像为f(x,y),依照一定的准则f(x,y)中找到特征值T,将图像分割为两个部分,分割后的图像为:

若取:

b0=0(黑),b1=1(白),即为我们通常所说的图像二值化。

设图像为f(x,y),其灰度集范围是[0,L],在0和L之间选择一个合适的灰度阈值T,则图像分割方法可由下式描述

 

这样得到的g(x,y)是一幅二值图像。

图2-1图像分割算法

2.2.2全局阈值分割

阈值法有多种类型,主要有:

全局阈值,自适应阈值等。

所谓全局阈值,如果布景的灰度值在整个图像中可合理的看做恒定,而且所有物体与布景都具有几乎相同的对比度,那么,只要选择了正确的阈值,使用了一个固定的全局阈值一般会有较好的效果。

给出利用全局阈值分割图像的MATLAB程序如下:

I=imread('tsaml.jpg');

fori=1:

width

forj=1:

height

if(I(i,j)<60)

BW1(i,j)=0;

else

BW1(i,j)=1;

end

end

end

figure

imshow(BW1)

这里设定了一个常数60,通过比较灰度值与60的大小关系来重新给图像赋值。

2.2.3自适应阈值

在许多情况下,布景的灰度值其实不是常数,物体和布景的对比度在图像中也有变更,这时就要引入自适应阈值,一个在图像中某一区域效果良好的阈值在其他区域却可能效果很差。

在这种情况下,需要把灰度阈值取成一个随图像中位置缓慢变更的函数值,即为自适应阈值。

这类算法的时间复杂度和空间复杂度比较大,但是抗噪声的能力比较强,对采取全局阈值不容易分割的图像有较好的效果。

这种方法的关键问题是如何将图像进行细分和如何为得到子图像估计门限值。

由于用于每个像素的门限取决于像素在子图像中的位置,这类门限处理是自适应的。

2.3边沿检测原理

边沿检测是图像处理和计算机视觉中的基本问题,边沿检测的目的是标识数字图像中亮度变更明显的点。

图像属性中的显著变更通常反映了属性的重要事件和变更。

这些包含(i)深度上的不连续、(ii)概况方向不连续、(iii)物质属性变更和(iv)场景照明变更。

边沿检测是图像处理和计算机视觉中,尤其是特征提取中的一个研究领域。

图像边沿检测大幅度地减少了数据量,而且剔除了可以认为不相关的信息,保存了图像重要的结构属性。

有许多方法用于边沿检测,它们的绝大部分可以划分为两类:

基于查找一类和基于零穿越的一类。

基于查找的方法通过寻找图像一阶导数中的最大和最小值来检测鸿沟,通常是将鸿沟定位在梯度最大的方向。

基于零穿越的方法通过寻找图像二阶导数零穿越来寻找鸿沟,通常是Laplacian过零点或者非线性差分暗示的过零点。

有许多用于边沿检测的方法,他们大致可分为两类:

基于搜索和基于零交叉。

基于搜索的边沿检测方法首先计算边沿强度,通经常使用一阶导数暗示,例如梯度模,然后,用计算估计边沿的局部方向,通常采取梯度的方向,并利用此方向找到局部梯度模的最大值。

基于零交叉的方法找到由图像得到的二阶导数的零交叉点来定位边沿。

通经常使用拉普拉斯算子或非线性微分方程的零交叉点。

滤波做为边沿检测的预处理通常是需要的,通常采取高斯滤波。

已发表的边沿检测方法应用计算鸿沟强度的度量,这与平滑滤波有实质的分歧。

正如许多边沿检测方法依赖于图像梯度的计算,他们用分歧种类的滤波器来估计x-方向和y-方向的梯度。

一旦我们计算出导数之后,下一步要做的就是给出一个阈值来确定哪里是边沿位置。

阈值越低,能够检测出的边线越多,结果也就越容易受到图片噪声的影响,而且越容易从图像中挑出不相关的特性。

与此相反,一个高的阈值将会遗失细的或者短的线段。

一个经常使用的这种方法是带有滞后作用的阈值选择。

这个方法使用分歧的阈值去寻找边沿。

首先使用一个阈值上限去寻找边线开始的地方。

一旦找到了一个开始点,我们在图像上逐点跟踪边沿路径,当大于门槛下限时一直纪录边沿位置,直到数值小于下限之后才停止纪录。

这种方法假设边沿是连续的界线,而且我们能够跟踪前面所看到的边沿的模糊部分,而不会将图像中的噪声点标识表记标帜为边沿

2.4图像物体中心位置的确定

物体的中心即物体内到四周距离相等的位置。

根据此定义,很容易就能找到,求取物体内部所有像素点的X,Y坐标的平均值即可确定物体的中心坐标,然后将这个坐标所暗示的像素点用一个特定符号进行标识表记标帜,就能明显地找到该物体的中心。

至于如何用特定符号标识表记标帜这个中心点,可以使用matlab中已经定义的一个用于画函数图形的plot函数即可,我们在这里只需要利用其进行标识表记标帜即可,基本函数形式可以暗示为:

plot(x,y,'*'),意思即为用*号标定(X,Y)。

如何标定出中心点的任务解决了,剩下的工作就是对相应的图形坐标的处理,进而准确地找到中心点位置了。

此时,可以编写一段循环语句,由于第一个物体由1组成,第二个物体由2组成,第n个物体由n组成。

可以定义一个k,从1到n连续变更,然后与物体内所包含的数值进行比较,若与此时的k值相等,则可以确定是一个物体,然后再将物体内部像素点的横纵坐标分别求平均值,这样就可以求出物体中心点的坐标,将此坐标储存。

同样的原理对第二个物体进行操纵,如此往复直至第n个物体,,循环结束所有物体标定完成,最后通过plot函数对这些坐标对应的点进行标识表记标帜,即可找出个物体的中心,本课设只有一个物体,故只需要执行一次操纵。

 

3设计程序与仿真结果

3.1提取目标的二值图像

对应matlab程序代码为:

I=imread('rgb.jpg');

I=rgb2gray(I);

figure

(1);

imshow(I);

imwrite(I,'gray.jpg');

[width,height]=size(I);

%È«¾ÖãÐÖµ

BW=zeros(width,height);

fori=1:

width

forj=1:

height

if(I(i,j)<80)

BW(i,j)=1;

end

end

end

figure

(2);

imshow(BW);

对应的运行结果如下图:

 

图3-1

灰度图像与转换后的二值图像

3.2计算目标的面积

对应matlab程序代码为:

I=imread('rgb.jpg');

I=rgb2gray(I);

figure

(1);

imshow(I);

[width,height]=size(I);

area=0;

fori=1:

width

forj=1:

height

if(BW(i,j)==1)

area=area+1;

end

end

end

area

对应的运行结果为:

area=

7416

3.3计算目标的周长

对应matlab程序代码为:

I=imread('bw.jpg');

BW1=edge(I,'Roberts');

figure;

imshow(BW1);

imwrite(BW1,'by.jpg');

[width,height]=size(BW1);

circum=0;

fori=1:

width

forj=1:

height

if(BW(i,j)==0)

circum=circum+1;

end

end

end

circum

对应的运行结果为:

circum=

7099

3.4计算目标的中心坐标

对应matlab程序代码为:

clc;clearall;

I=imread('bw.jpg');%加载图像

I1=im2bw(I);

L=bwlabel(I1);

stats=regionprops(L,'Centroid');

holdon

fori=1:

length(stats)

temp=stats(i).Centroid;%计算中心坐标

plot(temp

(1),temp

(2),'+r');%得到中心坐标后用+标出

end

对应的运行结果为:

图3-2计算目标的中心坐标

 

4心得体会

课程设计初期,由于对图片的处理不敷熟练,直接对黑色图像进行二值化,导致最后程序运行的结果中出现了三张图。

后来分析得知,出现三张图的原因应该是真彩图像的三原色对应三个变量分别进行了二值化。

于是对图像进行了灰度变换,然后再进行二值化就不会出现上述问题。

通过本次专业综合课程设计,我进一步熟悉了如何使用matlab软件岁图像进行处理,加深了《数字图像处理》这门课程的认识。

课程设计过程中遇到了很多困难,通过广泛地查阅相关资料最终解决了这些问题,提高了独立思考和解决问题的能力。

同时,通过此次课程设计,我也有了很多新的认识。

首先,很多知识其实书上都已经讲的很透彻了,只要把课本上的内容看懂就完全能完成题目要求。

参考文献是对课本以外的知识的拓展,在完成要求的基础上多翻看一些相关书籍对题目的理解会更深入一些。

其次,数字图像处理在现实生活中有着非常广泛的应用,在心理学、生理学、计算机科学等诸多领域内都发挥着作用。

同时,图像处理在军事、遥感、气象等大型应用中有不竭增长的需求。

我想,经过这次课程设计我不单对数字图像处理有了更深入的了解,对MATLAB编程变得更加熟练,更重要的是激发了我在数字图像处理方面的兴趣。

相信这份兴趣会成为以后继续深入学习数字图像处理方面知识的动力。

 

参考文献

[1]夏得深傅德胜《现代图像处理技术与应用》东南大学出版2001

[2]杨杰黄朝兵《数字图像处理及MATLAB实现》电子工业出版社2010

[3]冈萨雷斯《数字图像处理(MATLAB版)》电子工业出版社2005

[4]胡学龙许开宇《数字图像处理》电子工业出版社2006

[5]刘直芳王运琼《数字图像处理分析》清华大学出版社2006

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 经济学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1