MATLAB 亚像素点检测代码;

该函数用于在MATLAB中精炼图像角点的位置,采用最小二乘迭代方法提高角点检测的亚像素精度。代码首先定义了窗口大小、误差阈值和最大迭代次数,然后通过创建掩模矩阵并进行子像素数据采样、梯度计算及位置更新,不断迭代优化角点坐标,直至达到预设的精度标准。
摘要由CSDN通过智能技术生成

用法同 openCV, 使用最小二乘迭代  

 

function  corners_tuned = refine_pos( src, corners)        % corners: N*2
%UNTITLED Summary of this function goes here
%   Detailed explanation goes here
corners_tuned = corners;


% some parameters needed to set;
win.width = 3;
win.height = 3;
eps = 0.00001;
max_iters = 20;
count = size(corners, 1);

% parameters derived;
win_w = win.width*2 + 1;
win_h = win.width*2 + 1;
coeff = 1.0/(win.width*win.width);
maskX = zeros(win_w, 1, 'double');
maskY = zeros(win_h, 1, 'double');
mask = zeros(win_h, win_w, 'double');

for i = -win.width:1:win.width
    maskX(i + win.width + 1) = exp(-i*i*coeff);
end
maskY = maskX;

for i = 1:1:win_w
    for j = 1:1:win_h
        mask(i, j) = maskX(j)*mask

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值