www.gusucode.com > MATLAB编程改进了的动态视频目标跟踪程序源码 > SSDA_080721.m

    
clc;
close all;
clear all;

A=imread('Pic1.jpg');
T=imread('Snap1_32.jpg');
A_G=rgb2gray(A);
T_G=rgb2gray(T);

[M,N]=size(A_G); % 求图像的大小
[m,n]=size(T_G);

A_G=double(A_G);
T_G=double(T_G);

figure(1),imshow(uint8(A_G));
axis on;
% Y=image_down(T_G,[3,3],[1 1 1;1 1 1;1 1 1]);

% SSDA 
double Dist=zeros(M-m,N-n);

for x=1:M-m
    for y=1:N-n
        Temp=0;
        for i=0:m-1
            for j=0:n-1
                Temp = Temp+abs(A_G(i+x,j+y)-T_G(i+1,j+1));
            end
        end
        Dist(x,y)=Temp/(m*n);
    end
end

%%%%%%%%%%%%%%%%%%%%%%%%%
%   求每一行的最小值
D=zeros(1,M-m);
for x=1:M-m    %  行
    D(x)=Dist(x,1);
    for y=1:N-n-1   % 列   
          if(D(x)>Dist(x,y+1))  % 
              D(x)=Dist(x,y+1); 
          end     
    end
end

%*****************************
% figure(2)
% x=1:1:M-m
% plot(x,D,'*');

%%%%%%%%%%%%%%%%%%%%%%%%%
%   求最小值的坐标点
min0=D(1);   % min0为最小值
for i=1:M-m-1
    if(min0>D(i+1))
        min0=D(i+1);
    end
end

% for i=1:M-m-1   
%    if(D(i)==min0)
%      i     
%    end
% end

min0

%****************
for x=1:M-m    %  行
    for y=1:N-n-1   % 列
        if(min0 == Dist(x,y))
            x    %  实时图像的纵坐标
            y    
%            plot(x,y,'*')
%            axis on
        end 
    end
end



% A_S=edge(A_G,'sobel'); % 边缘提取
% T_S=edge(T_G,'sobel'); % 边缘提取
% 
% 
% figure(1),imhist(A_G); % imhist灰度直方图
% figure(2),imshow(T_G);
% 
% figure(3),imshow(A_S);
% figure(4),imshow(T_S);