搜档网
当前位置:搜档网 › forstner算子提取特征点

forstner算子提取特征点

forstner算子提取特征点
forstner算子提取特征点

Forstner算子提取特征点(原创)

;------------------------------

;Forstner算子

; 参考自:张祖勋,数字摄影测量学。P125

; image:输入原始图像

; vwsize:窗口宽度

; ithresh:初选差分阈值

; qthresh:兴趣值阈值

function Forstner,image,vwsize=vwsize,ithresh=ithresh,Tq=Tq

IF N_Elements(vwsize) eq 0 THEN vwsize=5

IF N_Elements(ithresh) eq 0 THEN ithresh=50

IF N_Elements(Tq) eq 0 THEN Tq=0.5

image=float(image)

imgSize = Size(image, /Dimensions)

xsize=imgSize[0]

ysize=imgSize[1]

;灰度的协方差矩阵

result=fltarr(xsize,ysize)

;第一步:利用差分算子提取初选点

for i=1,xsize-2 do begin

for j=1,ysize-2 do begin

dg1=abs(image[i,j]-image[i+1,j])

dg2=abs(image[i,j]-image[i,j+1])

dg3=abs(image[i,j]-image[i-1,j])

dg4=abs(image[i,j]-image[i,j-1])

dg=[dg1,dg2,dg3,dg4]

temp=dg[sort(dg)]

if temp[2] gt ithresh then begin

result[i,j]=255

endif else begin

result[i,j]=0

endelse

endfor

endfor

;第二步:在以初选点为中心的3*3的窗口中计算协方差矩阵与圆度

;此处可用where提高循环效率

;权重矩阵

wMatrix=fltarr(xsize,ysize)

for i=1,xsize-2 do begin

for j=1,ysize-2 do begin

;是初选点

if result[i,j] eq 255 then begin

gu2=0.0 & gv2=0.0 & guv=0.0

for ii=-1,1 do begin

for jj=-1,1 do begin

gu2=gu2+(image[i+1,j+1]-image[i,j])^2

gv2=gv2+(image[i,j+1]-image[i+1,j])^2

guv=guv+(image[i+1,j+1]-image[i,j])*(image[i,j+1]-image[i+1,j]) endfor

endfor

DetN=gu2*gv2-guv

trN=gu2+gv2

q=4*DetN/(trN*trN)

;第三步:设定阈值Tq,若满足则计算权值

if q gt Tq then wMatrix[i,j]=DetN/trN

endif

endfor

endfor

;第四步:以权值为基础,在一定窗口内抑制局部非最大值候选点

;取出局部极大值点

wradius=vwsize/2

for i=wradius,xsize-1-wradius do begin

for j=wradius,ysize-1-wradius do begin

tempiv=wMatrix[i-wradius:i+wradius,j-wradius:j+wradius]

;将区域内像素按从大至小排列

tempsort=tempiv(REVERSE(SORT(tempiv)))

;排除整个区域像素相等的情况

if (wMatrix[i,j] eq tempsort[0]) and (wMatrix[i,j] ne tempsort[1]) then begin

result[i,j]=255

endif else begin

result[i,j]=0

endelse

endfor

endfor

return,result

end

;--------------------

pro Forstner_test

DEVICE, DECOMPOSED=1

; 获取本程序所在文件路径

RootDir = Sourceroot()

; file=RootDir+'\small.bmp'

file=RootDir+'\8bit_house.bmp'

queryStatus = QUERY_IMAGE(file, imgInfo)

if queryStatus eq 0 then begin

Result = DIALOG_MESSAGE('参考图像格式不可识别!',/error,title='警告')

return

endif

if (imgInfo.CHANNELS ne 1) then begin

Result = DIALOG_MESSAGE('图像格式必须为8bit',/error,title='警告') return

endif

imgSize = imgInfo.dimensions

xsize=imgsize[0]

ysize=imgsize[1]

image=READ_IMAGE(file)

resultimg=Forstner(image,ithresh=70,Tq=0.5)

temp=image

index=where(resultimg eq 255,count)

print,count

dims=size(resultimg,/dimensions)

ncol=dims[0]

col_index=index mod ncol ;列数

row_index=index/ncol ;行数

WINDOW, /free, XSIZE = xsize*2, YSIZE = ysize

tv,image,0

tv,image,1

for i=0,count-1 do begin

PLOTS,[col_index[i]-2,col_index[i]+2],[row_index[i],row_index[i]], /DEVICE,color='0000ff'xl

PLOTS,[col_index[i],col_index[i]],[row_index[i]-2,row_index[i]+2], /DEVICE,color='0000ff'xl

endfor

end

基于MATLAB的点特征提取

基于MATLAB点特征提取实习报告 一、实习内容与目的 理解影像中每个像素灰度值的概念;理解点特征在灰度方面的特点;掌握常用的点特征提取算子及其对应的点特征提取方法,例如Harris算子。 利用MATLAB软件分析任意一种应用于数字图像处理中的边缘检测算子,研究它的提取方法以及实现提取特征点。 二、实习原理 基本思想:从图像局部的小窗口观察图像特征。 角点定义:窗口向任意方向的移动都导致图像灰度的明显变化。

Harris角点检测:数学描述 将图像窗口平移[u,v]产生灰度变化E[u,v] 由: 得到: 于是对于局部微小的移动量[u,v],可以近似得到下面的表达: 其中,M是2*2矩阵,可由图像的导数求得: 窗口移动导致的图像变化:实对称矩阵的特征值分析 其中,的特征值M的特征值λmax、λmin。

定义角点响应函数:R 其中 Harris角点检测结果如下图所示: 三、实习步骤及相关代码 filename='yuantu2.jpg'; X=imread(filename);%读取图像 %imshow(X); Info=imfinfo(filename);%获取图像相关信息 if(Info.BitDepth>8)

f=rgb2gray(X); end %《基于特征点的图像配准与拼接技术研究》 %计算图像亮度f(x,y)在点(x,y)处的梯度----------------------------------------------- %fx=[50-5;80-8;50-5];%高斯函数一阶微分,x方向(用于改进的Harris角点提取算法) ori_im=double(f)/255;%unit8转化为64为双精度double64 fx=[-2-1012];%x方向梯度算子(用于Harris角点提取算法) Ix=filter2(fx,ori_im);%x方向滤波 %fy=[585;000;-5-8-5];%高斯函数一阶微分,y方向(用于改进的Harris角点提取算法) fy=[-2;-1;0;1;2];%y方向梯度算子(用于Harris角点提取算法) Iy=filter2(fy,ori_im);%y方向滤波 %构造自相关矩阵--------------------------------------------------------------- Ix2=Ix.^2; Iy2=Iy.^2; Ixy=Ix.*Iy; clearIx; clearIy; h=fspecial('gaussian',[77],2);%产生7*7的高斯窗函数,sigma=2 Ix2=filter2(h,Ix2); Iy2=filter2(h,Iy2); Ixy=filter2(h,Ixy); %提取特征点--------------------------------------------------------------- height=size(ori_im,1); width=size(ori_im,2); result=zeros(height,width);%纪录角点位置,角点处值为1 R=zeros(height,width); Rmax=0;%图像中最大的R值 k=0.06;%k为常系数,经验取值范围为0.04~0.06 fori=1:height forj=1:width M=[Ix2(i,j)Ixy(i,j);Ixy(i,j)Iy2(i,j)];%autocorrelationmatrix R(i,j)=det(M)-k*(trace(M))^2;%计算R ifR(i,j)>Rmax Rmax=R(i,j); end;

图像中角点(特征点)提取与匹配算法

角点提取与匹配算法实验报告 1 说明 本文实验的目标是对于两幅相似的图像,通过角点检测算法,进而找出这两幅图像的共同点,从而可以把这两幅图像合并成一幅图像。 下面描述该实验的基本步骤: 1.本文所采用的角点检测算法是Harris 角点检测算法,该算法的基本原理是取以目标像素点为中心的一个小窗口,计算窗口沿任何方向移动后的灰度变化,并用解析形式表达。设以像素点(x,y)为中心的小窗口在X 方向上移动u ,y 方向上移动v ,Harris 给出了灰度变化度量的解析表达式: 2 ,,|,|,,()(x y x y x u y v x y x y I I E w I I w u v o X Y ??= -=++??∑∑ (1) 其中,,x y E 为窗口内的灰度变化度量;,x y w 为窗口函数,一般定义为2 2 2 ()/,x y x y w e σ +=; I 为图像灰度函数,略去无穷小项有: 222222 ,,[()()2]2x y x y x y x y E w u I v I uvI I Au Cuv Bv = ++=++∑ (2) 将,x y E 化为二次型有: ,[]x y u E u v M v ?? =???? (3) M 为实对称矩阵: 2 ,2 x y x x y x y y I I I M w I I I ???= ???????∑ (4) 通过对角化处理得到: 11 ,200x y E R R λλ-??= ??? (5) 其中,R 为旋转因子,对角化处理后并不改变以u,v 为坐标参数的空间曲面的形状,其特征值反应了两个主轴方向的图像表面曲率。当两个特征值均较小时,表明目标点附近区域为“平坦区域”;特征值一大一小时,表明特征点位于“边缘”上;只有当两个特征值均比较大时,沿任何方向的移动均将导致灰度的剧烈变化。Harris 的角点响应函数(CRF)表达式由此而得到: 2 (,)det()(())C RF x y M k trace M =- (6)

SIFT 特征提取算法详解

SIFT 特征提取算法总结 主要步骤 1)、尺度空间的生成; 2)、检测尺度空间极值点; 3)、精确定位极值点; 4)、为每个关键点指定方向参数; 5)、关键点描述子的生成。 L(x,y,σ), σ= 1.6 a good tradeoff

D(x,y,σ), σ= 1.6 a good tradeoff

关于尺度空间的理解说明:图中的2是必须的,尺度空间是连续的。在 Lowe 的论文中, 将第0层的初始尺度定为1.6,图片的初始尺度定为0.5. 在检测极值点前对原始图像的高斯平滑以致图像丢失高频信息,所以Lowe 建议在建立尺度空间前首先对原始图像长宽扩展一倍,以保留原始图像信息,增加特征点数量。尺度越大图像越模糊。 next octave 是由first octave 降采样得到(如2) , 尺度空间的所有取值,s为每组层数,一般为3~5 在DOG尺度空间下的极值点 同一组中的相邻尺度(由于k的取值关系,肯定是上下层)之间进行寻找

在极值比较的过程中,每一组图像的首末两层是无法进行极值比较的,为了满足尺度 变化的连续性,我们在每一组图像的顶层继续用高斯模糊生成了 3 幅图像, 高斯金字塔有每组S+3层图像。DOG金字塔每组有S+2层图像.

If ratio > (r+1)2/(r), throw it out (SIFT uses r=10) 表示DOG金字塔中某一尺度的图像x方向求导两次 通过拟和三维二次函数以精确确定关键点的位置和尺度(达到亚像素精度)?

直方图中的峰值就是主方向,其他的达到最大值80%的方向可作为辅助方向 Identify peak and assign orientation and sum of magnitude to key point The user may choose a threshold to exclude key points based on their assigned sum of magnitudes. 利用关键点邻域像素的梯度方向分布特性为每个关键点指定方向参数,使算子具备 旋转不变性。以关键点为中心的邻域窗口内采样,并用直方图统计邻域像素的梯度 方向。梯度直方图的范围是0~360度,其中每10度一个柱,总共36个柱。随着距中心点越远的领域其对直方图的贡献也响应减小.Lowe论文中还提到要使用高斯函 数对直方图进行平滑,减少突变的影响。

实验一 点特征提取

实验一点特征提取 一、实验目的 1、理解点特征提取的基本概念; 2、熟悉进行点特征提取的基本方法; 3、掌握用MATLAB语言进行点特征提取的方法。 二、实验原理 特征主要指明显点,如角点、圆点等。提取点特征的算子称为兴趣算子或有利算子,即运用某种算法从影像中提取我们所感兴趣的,即有利于某种目的的点。本次试验使用Moravex算子进行点特征提取。 Moravex算子于1977年提出利用灰度方差提取点特征的算子,其特点是在四个主要方向上选择具有最大---最小灰度方差的点作为特征点。其基本步骤为: 1、计算各像元的兴趣值IV(interest value)。在以像素(c ,r)为中心的w×w的影像窗口中,计算四个方向相邻像素灰度差的平方和; 2、给定一定的阈值,将兴趣值大于该阈值的点作为候选点。阈值的选择应以候选点中包括所需要的特征点,而又不包括过多的非特征点为原则; 3、选取候选点中的极值点作为特征点。在一定大小窗口内,将

候选点中不是最大者均去掉,留下一个兴趣值最大者,该像素即为一个特征点。 三、实验要求 1、读取MATLAB图像处理工具箱中提供的p13.jpg这幅图像, 并显示。 2、用Moravex算子对图像进行点特征提取 四、运行结果 原图:

提取点特征之后的图像: 五、源程序代码 % clear all % close all % clc tic I=imread('p13.jpg'); originalmap=I; %calculate every pixel's IV(Interest value) %divide image I by w*w w=5; %divide to m*n m=floor(size(I,1)/w); %rows,round n=floor(size(I,2)/w); %columns

特征描述算子评测

Feature descriptor comparison report Sharing my research work of behavior of several types of feature descriptors. This article is an update of old "Comparison of feature descriptors" post. I've added a brand new ORB feature descriptor to the test suite, also SIFT descriptor included as well. And a new version of LAZY descriptor present in this test too. For this test i have written special test framework, which allows me to easily add the new kind of descriptors and test cases and generate report data in CSV-like format. Than i upload it in Google docs and create this awesome charts. Five quality and one performance test was done for each kind of descriptor. o Rotation test - this test shows how the feature descriptor depends on feature orientation. o Scaling test - this test shows how the feature descriptor depends on feature size. o Blur test - this test shows how the feature descriptor is robust against blur. o Lighting test - this test shows how the feature descriptor is robust against lighting. o Pattern detection test - this test performs detection of planar平面object (image) on the real video. In contrast to the synthetic综合tests, this test gives a real picture of the overall stability of the particular descriptor. o Performance test is a measurement of description extraction time. All quality tests works in similar way. Using a given source image we generate a synthetic test data: transformed images corresponding feature points. The transformation algorithm depends on the particular test. For the rotation test case, it's the rotation of the source image around it's center for 360 degrees, for scaling - it's resizing of image from 0.25X to 2x size of original. Blur test uses gaussian blur with several steps and the lighting test changes the overall picture brightness. The pattern detection test deserves a special attention. This test is done on very complex and noisy video sequence. So it's challenging task for any feature descriptor algorithm to demonstrate a good results in this test. The metric for all quality tests is the percent of correct matches between the source image and the transformed one. Since we use planar object, we can easily select the inliers from all matches using the homography estimation. I use OpenCV's function cvFindHomography for this. This metric gives very good and stable results. I do no outlier detection of matches before homography estimation because this will affect the results in unexpected way. The matching of descriptors is done via brute-force matching from the OpenCV.

SIFT特征点提取与匹配算法

SIFT 特征点匹配算法 基于SIFT 方法的图像特征匹配可分为特征提取和特征匹配两个部分,可细化分为五个部分: ① 尺度空间极值检测(Scale-space extrema detection ); ② 精确关键点定位(Keypoint localization ) ③ 关键点主方向分配(Orientation assignment ) ④ 关键点描述子生成(Keypoint descriptor generation ) ⑤ 比较描述子间欧氏距离进行匹配(Comparing the Euclidean distance of the descriptors for matching ) 1.1 尺度空间极值检测 特征关键点的性质之一就是对于尺度的变化保持不变性。因此我们所要寻找的特征点必须具备的性质之一,就是在不同尺度下都能被检测出来。要达到这个目的,我们可以在尺度空间内寻找某种稳定不变的特性。 Koenderink 和Lindeberg 已经证明,变换到尺度空间唯一的核函数是高斯函数。因此一个图像的尺度空间定义为:(,,)L x y σ,是由可变尺度的高斯函数(,,)G x y σ与输入图像(,)I x y 卷积得到,即: ),(),,(),,(y x I y x G y x L *=σσ (1.1) 其中:2222/)(221 ),,(σπσσy x e y x G +-= 在实际应用中,为了能相对高效地计算出关键点的位置,建议使用的是差分高斯函数(difference of Gaussian )(,,)D x y σ。其定义如下: ) ,,(),,() ,()),,(),,((),,(σσσσσy x L k y x L y x I y x G k y x G y x D -=*-= (1.2) 如上式,D 即是两个相邻的尺度的差(两个相邻的尺度在尺度上相差一个相乘系数k )。

图像局部特征描述子研究分析(未完-待续)

研究背景 在日常生活中,我们主要依赖于视觉来感知外界的信息,比起听觉,视觉能给我们更加丰富的描述。人们一直想通过计算机视觉来描述视觉信息中有意义和有用的东西。首先,我们必须回答什么类型的信息是我们想要的?如何提取这样的特征信息?有人定义视觉为发现图像是什么和在哪里的过程,这强调了视觉是一个信息处理任务[]。而如何构建一个视觉系统来进行这样的信息处理任务是很多学者研究的问题之一。其中,达成统一共识是利用不同的特征层来构建这一个视觉模型系统,最简单的三层体系结构为低层、中层、高层。而本文基于最基本的图像描述方法——尺度的概念,利用尺度空间表示法来分析最低层图像数据。尺度空间方法是一种尺度参数连续、不同尺度空间下采样保持一致性的视觉多尺度分析。 视觉多尺度分析是一种新的视觉信息处理方法,其基本思想是:当我们用眼睛观察物体且物体和观察者之间的距离(将距离视为尺度参数)不断变化时,视网膜将感知到不断变化的图像信息,分析和综合这些不同尺度下的视觉信息以获得被观察物体的本质特征,这种视觉分析方法即称为视觉多尺度分析。 尺度空间方法的基本思想是:在视觉信息(图像信息)处理模型中引入一个被视为尺度的参数,通过连续变化尺度参数获得不同尺度下的视觉处理信息,然后综合这些信息以深入地挖掘图像的本质特征。尺度空间方法将传统的单尺度视觉信息处理技术纳入尺度不断变化的动态分析框架中,因此更容易获得图像的本质特征。 为什么要研究尺度空间?可以从以下几个通俗的描述来说明: 1)现实世界的物体由不同尺度的结构所组成; 2)在人的视觉中,对物体观察的尺度不同,物体的呈现方式也不同; 3)对计算机视觉而言,无法预知某种尺度的物体结构是有意义的,因此有必要将所有尺度的结构表示出来; 4)从测量的角度来说,对物体的测量数据必然是依赖于某个尺度的,例如温度曲线的采集,不可能是无限的,而是在一定温度范围进行量化采集。温度范围即是选择的尺度; 5)采用尺度空间理论对物体建模,即将尺度的概念融合入物理模型之中。 尺度空间数学定义表示如下: 设多尺度分析的初始图像为0()u x (x , 为图像区域),(,)u x t 为多尺度分析用于图像所获得的在尺度(0)t t 时的图像,称0:()(,)t T u x u x t 为尺度空间算子,尺度空间算子族 0t t T 为尺度空间,并称为0:()(,)t h T u x t u x t h 尺度由t 变化到t h 的尺度空间算子。 依据尺度空间公理,尺度空间算子应满足如下定义的视觉不变性: 定义2 设t T 为尺度空间算子,称t T 具有

SIFT特征点提取与匹配算法

二 特征点提取算法 1、基于SIFT (Scale Invariant Feature Transform )方法的图像特征匹配 参看David G. Lowe 的“Distinctive Image Features from Scale-Invariant Keypoints ” 基于SIFT 方法的图像特征匹配可分为特征提取和特征匹配两个部分,可细化分为五个部分: ① 尺度空间极值检测(Scale-space extrema detection ); ② 精确关键点定位(Keypoint localization ) ③ 关键点主方向分配(Orientation assignment ) ④ 关键点描述子生成(Keypoint descriptor generation ) ⑤ 比较描述子间欧氏距离进行匹配(Comparing the Euclidean distance of the descriptors for matching ) 1.1 尺度空间极值检测 特征关键点的性质之一就是对于尺度的变化保持不变性。因此我们所要寻找的特征点必须具备的性质之一,就是在不同尺度下都能被检测出来。要达到这个目的,我们可以在尺度空间内寻找某种稳定不变的特性。 Koenderink 和Lindeberg 已经证明,变换到尺度空间唯一的核函数是高斯函数。因此一个图像的尺度空间定义为:(,,)L x y σ,是由可变尺度的高斯函数(,,)G x y σ与输入图像(,)I x y 卷积得到,即: ),(),,(),,(y x I y x G y x L *=σσ (1.1) 其中:2222/)(221 ),,(σπσσy x e y x G +-= 在实际应用中,为了能计算的相对高效,所真正使用的是差分高斯尺度空间(difference of Gaussian )(,,)D x y σ。其定义如下: ) ,,(),,() ,()),,(),,((),,(σσσσσy x L k y x L y x I y x G k y x G y x D -=*-= (1.2) 如上式,D 即是由两个相邻的尺度的差(两个相邻的尺度在尺度上相差一个相乘系数k )。

图像特征提取算法

Histograms of for Human Detection Navneet Dalal and Bill Triggs INRIA Rh?o ne-Alps,655avenue de l’Europe,Montbonnot38334,France {Navneet.Dalal,Bill.Triggs}@inrialpes.fr,http://lear.inrialpes.fr Abstract We study the question of feature sets for ob-ject recognition,adopting linear SVM based human detec-tion as a test case.After reviewing existing edge and gra-dient based descriptors,we show experimentally that grids of Histograms of Oriented Gradient(HOG)descriptors sig-ni?cantly outperform existing feature sets for human detec-tion.We study the in?uence of each stage of the computation on performance,concluding that?ne-scale gradients,?ne orientation binning,relatively coarse spatial binning,and high-quality local contrast normalization in overlapping de-scriptor blocks are all important for good results.The new approach gives near-perfect separation on the original MIT pedestrian database,so we introduce a more challenging dataset containing over1800annotated human images with a large range of pose variations and backgrounds. 1Introduction Detecting humans in images is a challenging task owing to their variable appearance and the wide range of poses that they can adopt.The?rst need is a robust feature set that allows the human form to be discriminated cleanly,even in cluttered backgrounds under dif?cult illumination.We study the issue of feature sets for human detection,showing that lo-cally normalized Histogram of Oriented Gradient(HOG)de-scriptors provide excellent performance relative to other ex-isting feature sets including wavelets[17,22].The proposed descriptors are reminiscent of edge orientation histograms [4,5],SIFT descriptors[12]and shape contexts[1],but they are computed on a dense grid of uniformly spaced cells and they use overlapping local contrast normalizations for im-proved performance.We make a detailed study of the effects of various implementation choices on detector performance, taking“pedestrian detection”(the detection of mostly visible people in more or less upright poses)as a test case.For sim-plicity and speed,we use linear SVM as a baseline classi?er throughout the study.The new detectors give essentially per-fect results on the MIT pedestrian test set[18,17],so we have created a more challenging set containing over1800pedes-trian images with a large range of poses and backgrounds. Ongoing work suggests that our feature set performs equally well for other shape-based object classes. We brie?y discuss previous work on human detection in §2,give an overview of our method§3,describe our data sets in§4and give a detailed description and experimental evaluation of each stage of the process in§5–6.The main conclusions are summarized in§7. 2Previous Work There is an extensive literature on object detection,but here we mention just a few relevant papers on human detec-tion[18,17,22,16,20].See[6]for a survey.Papageorgiou et al[18]describe a pedestrian detector based on a polynomial SVM using recti?ed Haar wavelets as input descriptors,with a parts(subwindow)based variant in[17].Depoortere et al give an optimized version of this[2].Gavrila&Philomen [8]take a more direct approach,extracting edge images and matching them to a set of learned exemplars using chamfer distance.This has been used in a practical real-time pedes-trian detection system[7].Viola et al[22]build an ef?cient moving person detector,using AdaBoost to train a chain of progressively more complex region rejection rules based on Haar-like wavelets and space-time differences.Ronfard et al[19]build an articulated body detector by incorporating SVM based limb classi?ers over1st and2nd order Gaussian ?lters in a dynamic programming framework similar to those of Felzenszwalb&Huttenlocher[3]and Ioffe&Forsyth [9].Mikolajczyk et al[16]use combinations of orientation-position histograms with binary-thresholded gradient magni-tudes to build a parts based method containing detectors for faces,heads,and front and side pro?les of upper and lower body parts.In contrast,our detector uses a simpler archi-tecture with a single detection window,but appears to give signi?cantly higher performance on pedestrian images. 3Overview of the Method This section gives an overview of our feature extraction chain,which is summarized in?g.1.Implementation details are postponed until§6.The method is based on evaluating well-normalized local histograms of image gradient orienta-tions in a dense grid.Similar features have seen increasing use over the past decade[4,5,12,15].The basic idea is that local object appearance and shape can often be characterized rather well by the distribution of local intensity gradients or 1

forstner算子提取特征点

Forstner算子提取特征点(原创) ;------------------------------ ;Forstner算子 ;; image:输入原始图像 ; vwsize:窗口宽度 ; ithresh:初选差分阈值 ; qthresh:兴趣值阈值 function Forstner,image,vwsize=vwsize,ithresh=ithresh,Tq=Tq IF N_Elements(vwsize) eq 0 THEN vwsize=5 IF N_Elements(ithresh) eq 0 THEN ithresh=50 IF N_Elements(Tq) eq 0 THEN Tq=0.5 image=float(image) imgSize = Size(image, /Dimensions) xsize=imgSize[0] ysize=imgSize[1] ;灰度的协方差矩阵 result=fltarr(xsize,ysize) ;第一步:利用差分算子提取初选点

for i=1,xsize-2 do begin for j=1,ysize-2 do begin dg1=abs(image[i,j]-image[i+1,j]) dg2=abs(image[i,j]-image[i,j+1]) dg3=abs(image[i,j]-image[i-1,j]) dg4=abs(image[i,j]-image[i,j-1]) dg=[dg1,dg2,dg3,dg4] temp=dg[sort(dg)] if temp[2] gt ithresh then begin result[i,j]=255 endif else begin result[i,j]=0 endelse endfor endfor ;第二步:在以初选点为中心的3*3的窗口中计算协方差矩阵与圆度 ;此处可用where提高循环效率 ;权重矩阵 wMatrix=fltarr(xsize,ysize) for i=1,xsize-2 do begin for j=1,ysize-2 do begin ;是初选点 if result[i,j] eq 255 then begin gu2=0.0 & gv2=0.0 & guv=0.0 for ii=-1,1 do begin for jj=-1,1 do begin gu2=gu2+(image[i+1,j+1]-image[i,j])^2 gv2=gv2+(image[i,j+1]-image[i+1,j])^2 guv=guv+(image[i+1,j+1]-image[i,j])*(image[i,j+1]-image[i+1,j]) endfor endfor DetN=gu2*gv2-guv trN=gu2+gv2 q=4*DetN/(trN*trN) ;第三步:设定阈值Tq,若满足则计算权值 if q gt Tq then wMatrix[i,j]=DetN/trN endif

图像局部特征点检测算法综述

图像局部特征点检测算法综述 研究图像特征检测已经有一段时间了,图像特征检测的方法很多,又加上各种算法的变形,所以难以在短时间内全面的了解,只是对主流的特征检测算法的原理进行了学习。总体来说,图像特征可以包括颜色特征、纹理特等、形状特征以及局部特征点等。其中局部特点具有很好的稳定性,不容易受外界环境的干扰,本篇文章也是对这方面知识的一个总结。 本篇文章现在(2015/1/30)只是以初稿的形式,列出了主体的框架,后面还有许多地方需要增加与修改,例如2013年新出现的基于非线性尺度空间的KAZE特征提取方法以及它的改进AKATE等。在应用方面,后面会增一些具有实际代码的例子,尤其是基于特征点的搜索与运动目标跟踪方面。 1. 局部特征点 图像特征提取是图像分析与图像识别的前提,它是将高维的图像数据进行简化表达最有效的方式,从一幅图像的M×N×3的数据矩阵中,我们看不出任何信息,所以我们必须根据这些数据提取出图像中的关键信息,一些基本元件以及它们的关系。 局部特征点是图像特征的局部表达,它只能反正图像上具有的局部特殊性,所以它只适合于对图像进行匹配,检索等应用。对于图像理解则不太适合。而后者更关心一些全局特征,如颜色分布,纹理特征,主要物体的形状等。全局特征容易受到环境的干扰,光照,旋转,噪声等不利因素都会影响全局特征。相比而言,局部特征点,往往对应着图像中的一些线条交叉,明暗变化的结构中,受到的干扰也少。 而斑点与角点是两类局部特征点。斑点通常是指与周围有着颜色和灰度差别的区域,如草原上的一棵树或一栋房子。它是一个区域,所以它比角点的噪能力要强,稳定性要好。而角点则是图像中一边物体的拐角或者线条之间的交叉部分。 2. 斑点检测原理与举例 2.1 LoG与DoH 斑点检测的方法主要包括利用高斯拉普拉斯算子检测的方法(LOG),以及利用像素点Hessian矩阵(二阶微分)及其行列式值的方法(DOH)。 LoG的方法已经在斑点检测这入篇文章里作了详细的描述。因为二维高斯函数的拉普拉斯核很像一个斑点,所以可以利用卷积来求出图像中的斑点状的结构。 DoH方法就是利用图像点二阶微分Hessian矩阵:

FFT特征提取算法

FFT特征提取算法 来自网络 滚动轴承故障诊断频域特征识别,关键在于转换为频域的实时性是否满足系统实时的工作需要,FFT变换是将时域信号转换为频域的有效方法。FFT具有快速实时,物理关系明确的优点,能以较低的成本得到性能满足要求的系统,所以本课题讨论的故障诊断频域特征识别仍采用FFT变换。 TI公司的DSP有许多适应实时数字信号处理的特点,具有哈佛总线结构、片内缓存技术、流水线结构、特殊的寻址方式、高效的特殊指令以及硬件乘法器、位反转桶形位移器等硬件,因此数据运算速度很快,通常1024点的FFT在毫秒级之内(以所选用的DSP和系统时钟而有别),因此用DSP实现FFT,实时性可以充分满足系统要求。 FFT在DSP处理器实现中采用的是按时间抽取的基2算法。一般情况下,假定FFT程序的输入序列为复数,而在本课题应用背景中待处理序列为实数值,可以采用对称特性有效地计算FFT。在此情况下,可以将原来的N点实数序列压缩为一个N/2点的复数序列。对此压缩复数序列执行N/2点FFT,将得到的N/2点复数输出展开为N点复序列,它与原来N点实数输入信号的FFT相对应。做完FFT变换后,要识别故障特征,还要对变换后的数据序列进行求模,从而判断出故障特征的幅度和频率信息。所以FFT变换的流程如图5.6所示。

C5402的DSPLIB库提供了一套全面优化的用于实数和复数FFT的函数和一个位反转例程(cbrev)。实数FFT函数rfft是一个宏,其如下调用Cfft和cbrev: #definerfft(x,nx,type) { Cfft_##type(x,nx/2); Cbrev(x,x,nx/2); unpack(x,nx); } FFT变换程序不仅要调用DSPL工B中的cfft--SCALE函数,而且还要对变换完后的数据进行位翻转和数据打包,所以分别调用了库中的cbrev和unPack函数,最后还要对输出数据进行求模来判断幅度和频率等参数。

图像特征提取方法

图像特征提取方法 摘要 特征提取是计算机视觉和图像处理中的一个概念。它指的是使用计算机提取图像信息,决定每个图像的点是否属于一个图像特征。特征提取的结果是把图像上的点分为不同的子集,这些子集往往属于孤立的点、连续的曲线或者连续的区域。 至今为止特征没有万能和精确的图像特征定义。特征的精确定义往往由问题或者应用类型决定。特征是一个数字图像中“有趣”的部分,它是许多计算机图像分析算法的起点。因此一个算法是否成功往往由它使用和定义的特征决定。因此特征提取最重要的一个特性是“可重复性”:同一场景的不同图像所提取的特征应该是相同的。 特征提取是图象处理中的一个初级运算,也就是说它是对一个图像进行的第一个运算处理。它检查每个像素来确定该像素是否代表一个特征。假如它是一个更大的算法的一部分,那么这个算法一般只检查图像的特征区域。作为特征提取的一个前提运算,输入图像一般通过高斯模糊核在尺度空间中被平滑。此后通过局部导数运算来计算图像的一个或多个特征。 常用的图像特征有颜色特征、纹理特征、形状特征、空间关系特征。当光差图像时,常 常看到的是连续的纹理与灰度级相似的区域,他们相结合形成物体。但如果物体的尺寸很小 或者对比度不高,通常要采用较高的分辨率观察:如果物体的尺寸很大或对比度很强,只需 要降低分辨率。如果物体尺寸有大有小,或对比有强有弱的情况下同事存在,这时提取图像 的特征对进行图像研究有优势。 常用的特征提取方法有:Fourier变换法、窗口Fourier变换(Gabor)、小波变换法、最 小二乘法、边界方向直方图法、基于Tamura纹理特征的纹理特征提取等。

设计内容 课程设计的内容与要求(包括原始数据、技术参数、条件、设计要求等):一、课程设计的内容 本设计采用边界方向直方图法、基于PCA的图像数据特征提取、基于Tamura纹理特征的纹理特征提取、颜色直方图提取颜色特征等等四种方法设计。 (1)边界方向直方图法 由于单一特征不足以准确地描述图像特征,提出了一种结合颜色特征和边界方向特征的图像检索方法.针对传统颜色直方图中图像对所有像素具有相同重要性的问题进行了改进,提出了像素加权的改进颜色直方图方法;然后采用非分割图像的边界方向直方图方法提取图像的形状特征,该方法相对分割方法具有简单、有效等特点,并对图像的缩放、旋转以及视角具有不变性.为进一步提高图像检索的质量引入相关反馈机制,动态调整两幅图像相似度中颜色特征和方向特征的权值系数,并给出了相应的权值调整算法.实验结果表明,上述方法明显地优于其它方法.小波理论和几个其他课题相关。所有小波变换可以视为时域频域的形式,所以和调和分析相关。所有实际有用的离散小波变换使用包含有限脉冲响应滤波器的滤波器段(filterbank)。构成CWT的小波受海森堡的测不准原理制约,或者说,离散小波基可以在测不准原理的其他形式的上下文中考虑。 通过边缘检测,把图像分为边缘区域和非边缘区域,然后在边缘区域内进行边缘定位.根据局部区域内边缘的直线特性,求得小邻域内直线段的高精度位置;再根据边缘区域内边缘的全局直线特性,用线段的中点来拟合整个直线边缘,得到亚像素精度的图像边缘.在拟合的过程中,根据直线段转角的变化剔除了噪声点,提高了定位精度.并且,根据角度和距离区分出不同直线和它们的交点,给出了图像精确的矢量化结果 图像的边界是指其周围像素灰度有阶跃变化或屋顶变化的那些像素的集合,边界广泛的存在于物体和背 景之间、物体和物体之间,它是图像分割所依赖的重要特征.边界方向直方图具有尺度不变性,能够比较好的 描述图像的大体形状.边界直方图一般是通过边界算子提取边界,得到边界信息后,需要表征这些图像的边 界,对于每一个边界点,根据图像中该点的梯度方向计算出该边界点处法向量的方向角,将空间量化为M级, 计算每个边界点处法向量的方向角落在M级中的频率,这样便得到了边界方向直方图. 图像中像素的梯度向量可以表示为[ ( ,),),( ,),)] ,其中Gx( ,),),G ( ,),)可以用下面的

相关主题