????????个人主页:研学社的博客
????????????????欢迎来到本博客❤️❤️????????
????博主优势:????????????博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。
⛳️座右铭:行百里者,半于九十。
????????????本文目录如下:????????????
目录
????1 概述
斑点特征是指与周围颜色和灰度有明显差异的区域,如一颗树、一块草地、栋房子
均可以看作斑点,其具有精度高、鲁棒性好、保持尺度不变等优点,但目前的斑点
特征提取算法(如 SIFT、SURF)的运算复杂度较高,不适合应用于实时性要求较高的系统。
为此,在分析斑点特征提取原理的基础上,提出了一种高效的斑点特征提取算法。研
究思路如图3.1所示,首先分析了斑点特征检测的运算复杂性,在对卷积函数分析的基础
上,设计了一种三层滤波函数,将特征检测转化成积分图像的加减运算;然后分析了基于
梯度的特征描述运算的复杂性,结合基于积分和基于量化的梯度运算的优点,设计了基
于积分-量化的梯度运算,并应用于特征描述中;最后在上述研究的基础上,设计了高效的
斑点特征提取算法,并通过实验对算法的精确性、鲁棒性和实时性进行测试。
1.1 斑点信号检测算法的复杂度分析
(1)斑点信号检测的基本原理
为了便于分析,本文首先对一维斑点信号进行分析,然后再将其扩展到二维图像上
去。设一个一维信号I(t),I(t)上有一个尺度为4的斑点信号,如图3.2所示。
????2 运行结果
高斯拉普拉斯算子
部分代码:
function [points] = log_Blob(img,o_nb_blobs)
% 功能:提取LoG斑点
% 输入:
% img –输入的图像
% o_nb_blobs -需要检测的斑点区域的数量
% 输出:
% points -检测出的斑点
% 参考文献:
% Lindeberg, T. Feature Detection with Automatic Scale Selection
% IEEE Transactions Pattern Analysis Machine Intelligence, 1998, 30,
% 77-116
% 输入图像
img = double(img(:,:,1));
% 设定检测到斑点的数量
if nargin==1
nb_blobs = 120;
else
nb_blobs = o_nb_blobs;
end
% 设定LoG参数
sigma_begin = 2;
sigma_end = 15;
sigma_step = 1;
sigma_array = sigma_begin:sigma_step:sigma_end;
sigma_nb = numel(sigma_array);
% 变量
img_height = size(img,1);
img_width = size(img,2);
% 计算尺度规范化高斯拉普拉斯算子
snlo = zeros(img_height,img_width,sigma_nb);
for i=1:sigma_nb
sigma = sigma_array(i);
snlo(:,:,i) = sigma*sigma*imfilter(img,fspecial('log', floor(6*sigma+1), sigma),'replicate');
end
% 搜索局部极值
snlo_dil = imdilate(snlo,ones(3,3,3));
blob_candidate_index = find(snlo==snlo_dil);
blob_candidate_value = snlo(blob_candidate_index);
[tmp,index] = sort(blob_candidate_value,'descend');
blob_index = blob_candidate_index( index(1:min(nb_blobs,numel(index))) );
[lig,col,sca] = ind2sub([img_height,img_width,sigma_nb],blob_index);
points = [lig,col,3*reshape(sigma_array(sca),[size(lig,1),1])];
end
????3 Matlab代码实现
????4 参考文献
部分理论来源于网络,如有侵权请联系删除。
[1]胡佳. 基于斑点特征的虚实配准技术研究[D].解放军信息工程大学,2013.