• 大小: 8.58MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-10-05
  • 语言: Matlab
  • 标签: Meansh  目标跟踪  

资源简介

该资源是包含代码和样例图像序列,代码附带详细的注释,深入浅出帮助你理解Meanshift算法和目标跟踪的关系,巴适系数和meanshift向量的关系

资源截图

代码片段和文件信息

%% 从零基础实现meanshift算法
close all;
clear all;
clc;

%% 根据一幅目标全可见的图像圈定跟踪目标
I=imread(‘0001.jpg‘);
figure(1);
imshow(I);

[target_image rect]               = imcrop(I);            % (rect(1)rect(2))为目标图像左上角坐标                                                            
%  ————→ x轴 (1到544) 对应图像的列                     % rect(3)是目标图像的宽度(x轴)                
% |                                                         % rect(4)是目标图像的高度(y轴) 
% |                                                         % 目标图像右下角坐标(rect(1)+rect(3),rect(3)+rect(4))
% ↓
% y轴(1到960) 对应图像的行

[target_rowtarget_coltarget_dim]  = size(target_image);   % 获取目标图像行数 列数 维度

%% 计算目标图像的权值矩阵
target_center_x = rect(1) + rect(3)/2;                      % 目标图像在原图像中的 X轴中心坐标      
target_center_y = rect(2) + rect(4)/2;                      % 目标图像在原图像中的 Y轴中心坐标

y(1)            = target_row/2;                             % 目标图像在目标图像的 Y轴中心坐标      
y(2)            = target_col/2;                             % 目标图像在目标图像的 X轴中心坐标 
h               = (target_row/2)^2 + (target_col/2)^2;      % 带宽 (对角线长度/2)^2
weight          = zeros(target_rowtarget_col);             % 权值矩阵

for i=1:target_row
    for j=1:target_col
        distance=(i-y(1))^2+(j-y(2))^2;                     % 计算每个点到中心坐标的距离
        weight(ij)=1-distance/h;                           % Epanechnikov profile(距离越大,权值越小)
    end
end

C               = 1 / sum(sum(weight));                     % 归一化系数 ( Tips 二维数组的求和 sum(sum(array)) )

%% 计算目标权值直方图qu
TargetHistogram     = zeros(14096);                      % 目标的权值直方图
for i=1:target_row
    for j=1:target_col
        % rgb颜色空间量化为16*16*16 bins
        % rgb的三个维度每一维都0~255 除16之后 每一维就降到了0~15
        q_r     = fix(double(target_image(ij1))/16);      % fix为 下取整函数
        q_g     = fix(double(target_image(ij2))/16);
        q_b     = fix(double(target_image(ij3))/16);
        q_temp = q_r*256 + q_g*16 + q_b;                   % 降维之后的16位的RGB空间可以把颜色分为 16*16*16=4096种颜色
                                                            % 这里是计算目标图像的每一个像素点的颜色在直方图的坐标
        % 计算得到坐标是0~4095,因此数组系数要+1
        TargetHistogram(q_temp+1)= TargetHistogram(q_temp+1)+weight(ij);        
                                                            % 统计目标的特征直方图中每一种颜色的权重
                                                            % 目标图像每一个像素点都会对应直方图中一种颜色
                                                            % 之前根据距离目标中心的距离也计算了每个像素点的权重的
    end
end
TargetHistogram = TargetHistogram*C;  
rect(3)=ceil(rect(3)); % rect(3)是目标图像的宽度 ceil是上取整
rect(4)=ceil(rect(4));  % rect(4)是目标图像的高度

bar(TargetHistogram0.5);
title(‘目标特征直方图‘);
 
%% 读取序列图像开始跟踪
ImageSequence = dir(‘*.jpg‘);
SequenceLength = length(ImageSequence);

% % 验证序列顺序是否正常
% for l=1:SequenceLength
%       ImageSequence(l).name
% end

IterationMaxNum = 2;
for l=1:SequenceLength
CurrentImage = imread(ImageSequence(l).name);    
    IterationNum = 0;
    Y               = [22];
    while( (Y(1

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

    .CA....     41113  2019-03-21 14:31  Meanshift算法MATLAB实现\0001.jpg

    .CA....     38659  2019-03-21 14:31  Meanshift算法MATLAB实现\0002.jpg

    .CA....     40697  2019-03-21 14:31  Meanshift算法MATLAB实现\0003.jpg

    .CA....     40547  2019-03-21 14:31  Meanshift算法MATLAB实现\0004.jpg

    .CA....     43372  2019-03-21 14:31  Meanshift算法MATLAB实现\0005.jpg

    .CA....     40458  2019-03-21 14:31  Meanshift算法MATLAB实现\0006.jpg

    .CA....     41791  2019-03-21 14:31  Meanshift算法MATLAB实现\0007.jpg

    .CA....     41443  2019-03-21 14:31  Meanshift算法MATLAB实现\0008.jpg

    .CA....     45220  2019-03-21 14:31  Meanshift算法MATLAB实现\0009.jpg

    .CA....     41704  2019-03-21 14:31  Meanshift算法MATLAB实现\0010.jpg

    .CA....     43879  2019-03-21 14:31  Meanshift算法MATLAB实现\0011.jpg

    .CA....     43445  2019-03-21 14:31  Meanshift算法MATLAB实现\0012.jpg

    .CA....     46029  2019-03-21 14:31  Meanshift算法MATLAB实现\0013.jpg

    .CA....     42999  2019-03-21 14:31  Meanshift算法MATLAB实现\0014.jpg

    .CA....     43017  2019-03-21 14:31  Meanshift算法MATLAB实现\0015.jpg

    .CA....     39847  2019-03-21 14:31  Meanshift算法MATLAB实现\0016.jpg

    .CA....     45106  2019-03-21 14:31  Meanshift算法MATLAB实现\0017.jpg

    .CA....     42073  2019-03-21 14:31  Meanshift算法MATLAB实现\0018.jpg

    .CA....     42476  2019-03-21 14:31  Meanshift算法MATLAB实现\0019.jpg

    .CA....     42073  2019-03-21 14:31  Meanshift算法MATLAB实现\0020.jpg

    .CA....     46296  2019-03-21 14:31  Meanshift算法MATLAB实现\0021.jpg

    .CA....     44755  2019-03-21 14:31  Meanshift算法MATLAB实现\0022.jpg

    .CA....     47372  2019-03-21 14:31  Meanshift算法MATLAB实现\0023.jpg

    .CA....     47389  2019-03-21 14:31  Meanshift算法MATLAB实现\0024.jpg

    .CA....     49380  2019-03-21 14:31  Meanshift算法MATLAB实现\0025.jpg

    .CA....     46482  2019-03-21 14:31  Meanshift算法MATLAB实现\0026.jpg

    .CA....     47421  2019-03-21 14:31  Meanshift算法MATLAB实现\0027.jpg

    .CA....     46129  2019-03-21 14:31  Meanshift算法MATLAB实现\0028.jpg

    .CA....     51013  2019-03-21 14:31  Meanshift算法MATLAB实现\0029.jpg

    .CA....     48452  2019-03-21 14:31  Meanshift算法MATLAB实现\0030.jpg

............此处省略175个文件信息

评论

共有 条评论