% =========================================================================
% 函数名称:CVA_changedetection
% 功能:对两个时相的图像运用变化矢量分析法进行变化检测
% =========================================================================
function my_CVA_changedetection
imgname=uigetfile('*.tif', 'Select the first image file');
im1=imread(imgname);
imgname=uigetfile('*.tif', 'Select the second image file');
im2=imread(imgname);
im1=double(im1);
im2=double(im2);
clear imgname ;
[new1,new2]=CVAchangedetection(im1,im2);
imshow(new2);
% 保存方向变化图像
curpath=pwd;
savename = uiputfile(curpath,'save img file');
fid=fopen(savename,'w+');
fwrite(fid,new1','float32');
fclose(fid);
% 保存大小变化图像
curpath=pwd;
savename = uiputfile(curpath,'save img file');
fid=fopen(savename,'w+');
fwrite(fid,new2','float32');
fclose(fid);
end
% =========================================================================
% 函数名称:CVAchangedetection
% 功能:对两个时相的图像运用变化矢量分析法进行变化检测
% 描述:tim1是得到的方向变化图像;tim2是得到的大小变化图像;time1和time2分别
% 是待处理的两个不同时相的图像
% =========================================================================
function [tim1,tim2] = CVAchangedetection( time1,time2 )
[m,n,p]=size(time1);
sel=[1:6];
result1=zeros(m,n);
result2=zeros(m,n);
for x=1:m
for y=1:n
t1=time1(x,y,sel);
t2=time2(x,y,sel);
t=t2-t1;
% result1 是方向变化图像
if t(1)<0&&t(2)<0&&t(3)<0&&t(4)<0&&t(5)<0&&t(6)<0
result1(x,y)=1;
elseif t(1)<0&&t(2)<0&&t(3)<0&&t(4)<0&&t(5)<0&&t(6)>0
result1(x,y)=2;
elseif t(1)<0&&t(2)<0&&t(3)<0&&t(4)<0&&t(5)>0&&t(6)<0
result1(x,y)=3;
elseif t(1)<0&&t(2)<0&&t(3)<0&&t(4)>0&&t(5)<0&&t(6)<0
result1(x,y)=4;
elseif t(1)<0&&t(2)<0&&t(3)>0&&t(4)<0&&t(5)<0&&t(6)<0
result1(x,y)=5;
elseif t(1)<0&&t(2)>0&&t(3)<0&&t(4)>0&&t(5)<0&&t(6)<0
result1(x,y)=6;
elseif t(1)>0&&t(2)<0&&t(3)<0&&t(4)<0&&t(5)<0&&t(6)<0
result1(x,y)=7;
elseif t(1)>0&&t(2)>0&&t(3)<0&&t(4)<0&&t(5)<0&&t(6)<0
result1(x,y)=8;
elseif t(1)>0&&t(2)<0&&t(3)>0&&t(4)<0&&t(5)<0&&t(6)<0
result1(x,y)=9;
elseif t(1)>0&&t(2)<0&&t(3)<0&&t(4)>0&&t(5)<0&&t(6)<0
result1(x,y)=10;
elseif t(1)>0&&t(2)<0&&t(3)<0&&t(4)<0&&t(5)>0&&t(6)<0
result1(x,y)=11;
elseif t(1)>0&&t(2)<0&&t(3)<0&&t(4)<0&&t(5)<0&&t(6)>0
result1(x,y)=12;
elseif t(1)<0&&t(2)>0&&t(3)>0&&t(4)<0&&t(5)<0&&t(6)<0
result1(x,y)=13;
elseif t(1)<0&&t(2)>0&&t(3)<0&&t(4)>0&&t(5)<0&&t(6)<0
result1(x,y)=14;
elseif t(1)<0&&t(2)>0&&t(3)<0&&t(4)<0&&t(5)>0&&t(6)<0
result1(x,y)=15;
elseif t(1)<0&&t(2)>0&&t(3)<0&&t(4)<0&&t(5)<0&&t(6)>0
result1(x,y)=16;
elseif t(1)<0&&t(2)<0&&t(3)>0&&t(4)>0&&t(5)<0&&t(6)<0
result1(x,y)=17;
elseif t(1)<0&&t(2)<0&&t(3)>0&&t(4)<0&&t(5)>0&&t(6)<0
result1(x,y)=18;
elseif t(1)<0&&t(2)<0&&t(3)>0&&t(4)<0&&t(5)<0&&t(6)>0
result1(x,y)=19;
elseif t(1)<0&&t(2)<0&&t(3)<0&&t(4)>0&&t(5)>0&&t(6)<0
result1(x,y)=20;
elseif t(1)<0&&t(2)<0&&t(3)<0&&t(4)>0&&t(5)<0&&t(6)>0
result1(x,y)=21;
elseif t(1)<0&&t(2)<0&&t(3)<0&&t(4)<0&&t(5)>0&&t(6)>0
result1(x,y)=22;
elseif t(1)>0&&t(2)>0&&t(3)>0&&t(4)<0&&t(5)<0&&t(6)<0
result1(x,y)=23;
elseif t(1)>0&&t(2)>0&&t(3)<0&&t(4)>0&&t(5)<0&&t(6)<0
result1(x,y)=24;
elseif t(1)>0&&t(2)>0&&t(3)<0&&t(4)<0&&t(5)>0&&t(6)<0
result1(x,y)=25;
elseif t(1)>0&&t(2)>0&&t(3)<0&&t(4)<0&&t(5)<0&&t(6)>0
result1(x,y)=26;
elseif t(1)>0&&t(2)<0&&t(3)>0&&t(4)>0&&t(5)<0&&t(6)<0
result1(x,y)=27;
elseif t(1)>0&&t(2)<0&&t(3)>0&&t(4)<0&&t(5)>0&&t(6)<0
result1(x,y)=28;
elseif t(1)>0&&t(2)<0&&t(3)>0&&t(4)<0&&t(5)<0&&t(6)>0
result1(x,y)=29;
elseif t(1)>0&&t(2)<0&&t(3)<0&&t(4)>0&&t(5)>0&&t(6)>0
result1(x,y)=30;
elseif t(1)>0&&t(2)<0&&t(3)<0&&t(4)>0&&t(5)<0&&t(6)>0
result1(x,y)=31;
elseif t(1)>0&&t(2)<0&&t(3)<0&&t(4)<0&&t(5)>0&&t(6)>0
result1(x,y)=32;
elseif t(1)<0&&t(2)>0&&t(3)>0&&t(4)>0&&t(5)<0&&t(6)<0
result1(x,y)=33;
elseif t(1)<0&&t(2)>0&&t(3)>0&&t(4)<0&&t(5)>0&&t(6)<0
result1(x,y)=34;
elseif t(1)<0&&t(2)>0&&t(3)>0&&t(4)<0&&t(5)<0&&t(6)<0
result1(x,y)=35;
elseif t(1)<0&&t(2)>0&&t(3)<0&&t(4)>0&&t(5)>0&&t(6)<0
result1(x,y)=36;
elseif t(1)<0&&t(2)>0&&t(3)<0&&t(4)>0&&t(5)<0&&t(6)>0
result1(x,y)=37;
elseif t(1)<0&&t(2)>0&&t(3)<0&&t(4)<0&&t(5)>0&&t(6)>0
result1(x,y)=38;
elseif t(1)<0&&t(2)<0&&t(3)>0&&t(4)>0&&t(5)>0&&t(6)<0
result1(x,y)=39;
elseif t(1)<0&&t(2)<0&&t(3)>0&&t(4)>0&&t(5)<0&&t(6)>0
result1(x,y)=40;
elseif t(1)<0&&t(2)<0&&t(3)>0&&t(4)<0&&t(5)>0&&t(6)>0
result1(x,y)=41;
elseif t(1)<0&&t(2)<0&&t(3)<0&&t(4)>0&&t(5)>0&&t(6)>0
result1(x,y)=42;
elseif t(1)<0&&t(2)<0&&t(3)>0&&t(4)>0&&t(5)>0&&t(6)>0
result1(x,y)=43;
elseif t(1)<0&&t(2)>0&&t(3)<0&&t(4)>0&&t(5)>0&&t(6)>0
result1(x,y)=44;
elseif t(1)<0&&t(2)>0&&t(3)>0&&t(4)<0&&t(5)>0&&t(6)>0
result1(x,y)=45;
elseif t(1)<0&&t(2)>0&&t(3)>0&&t(4)>0&&t(5)<0&&t(6)>0
result1(x,y)=46;
elseif t(1)<0&&t(2)>0&&t(3)>0&&t(4)>0&&t(5)>0&&t(6)<0
result1(x,y)=47;
elseif t(1)>0&&t(2)<0&&t(3)<0&&t(4)>0&&t(5)>0&&t(6)>0
result1(x,y)=48;
elseif t(1)>0&&t(2)<0&&t(3)>0&&t(4)<0&&t(5)>0&&t(6)>0
result1(x,y)=49;
elseif t(1)>0&&t(2)<0&&t(3)>0&&t(4)>0&&t(5)<0&&t(6)>0
result1(x,y)=50;
elseif t(1)>0&&t(2)<0&&t(3)>0&&t(4)>0&&t(5)>0&&t(6)<0
result1(x,y)=51;
elseif t(1)>0&&t(2)>0&&t(3)<0&&t(4)<0&&t(5)>0&&t(6)>0
result1(x,y)=52;
elseif t(1)>0&&t(2)>0&&t(3)<0&&t(4)>0&&t(5)<0&&t(6)>0
result1(x,y)=53;
elseif t(1)>0&&t(2)>0&&t(3)<0&&t(4)>0&&t(5)>0&&t(6)<0
result1(x,y)=54;
elseif t(1)>0&&t(2)>0&&t(3)>0&&t(4)<0&&t(5)<0&&t(6)>0
result1(x,y)=55;
elseif t(1)>0&&t(2)>0&&t(3)>0&&t(4)<0&&t(5)>0&&t(6)<0
result1(x,y)=56;
elseif t(1)>0&&t(2)>0&&t(3)>0&&t(4)>0&&t(5)<0&&t(6)<0
result1(x,y)=57;
elseif t(1)<0&&t(2)>0&&t(3)<0&&t(4)>0&&t(5)>0&&t(6)>0
result1(x,y)=58;
elseif t(1)>0&&t(2)<0&&t(3)>0&&t(4)<0&&t(5)>0&&t(6)>0
result1(x,y)=59;
elseif t(1)>0&&t(2)>0&&t(3)<0&&t(4)<0&&t(5)>0&&t(6)>0
result1(x,y)=60;
elseif t(1)>0&&t(2)>0&&t(3)>0&&t(4)<0&&t(5)>0&&t(6)<0
result1(x,y)=61;
elseif t(1)>0&&t(2)>0&&t(3)>0&&t(4)>0&&t(5)<0&&t(6)>0
result1(x,y)=62;
elseif t(1)>0&&t(2)>0&&t(3)>0&&t(4)>0&&t(5)>0&&t(6)<0
result1(x,y)=63;
elseif t(1)>0&&t(2)>0&&t(3)>0&&t(4)>0&&t(5)>0&&t(6)>0
result1(x,y)=64;
end
% result2 是大小变化图像
result
评论0