1 简介 变化监测是从不同时期的遥感图像中,定量地分析和确定地物变化的特征的过程,其中涉及到变化的类型、分布状况及变化信息的描述,即需要确定变化前后的地物类型,界限和分析变
1 简介
变化监测是从不同时期的遥感图像中,定量地分析和确定地物变化的特征的过程,其中涉及到变化的类型、分布状况及变化信息的描述,即需要确定变化前后的地物类型,界限和分析变化的属性.本文采用在遥感软件中进行图像配准后再在MATLAB下使用差值法进行变化监测,能够监测出较好的变化效果.
2 部分代码
function [ img_res,nChange] = changedetect( A,B,method,threshold)% 变化检测函数
% 输入:变化前后图像A、B,以及检测方法名method,对应阈值threshold
% 输出:结果差异二值图像img_res,差异像素数nChange
img1=rgb2gray(A);
img2=rgb2gray(B);
[row,col] = size(img1);
img3=ones(row,col);
% 比值法
if strcmp(method,'ratio')
nChange = 0;
for i=1:row
for j=1:col
if(img1(i,j)==0&&img2(i,j)~=0)
if(abs(img1(i,j)/img2(i,j)-1)>threshold)%阈值
img3(i,j)=0;
nChange = nChange+1;
end
elseif(img2(i,j)==0&&img1(i,j)~=0)
if(abs(img2(i,j)/img1(i,j)-1)>threshold)%阈值
img3(i,j)=0;
nChange = nChange+1;
end
else
if(abs(img1(i,j)/img2(i,j)-1)>threshold)%阈值
img3(i,j)=0;
nChange = nChange+1;
end
end
end
end
end
% 归一化法
if strcmp(method,'norm')
nChange = 0;
img1=double(img1);
img2=double(img2);
img3=double(img3);
max1=max(max(img1));
max2=max(max(img2));
min1=min(min(img1));
min2=min(min(img2));
for i=1:row
for j=1:col
img1(i,j)=(img1(i,j)-min1)/(max1-min1);
img2(i,j)=(img2(i,j)-min2)/(max2-min2);
end
end
for i=1:row
for j=1:col
if(abs(img1(i,j)-img2(i,j))>threshold)
img3(i,j)=0;
nChange = nChange+1;
end
end
end
end
% 相关系数法
if strcmp(method,'corrcoef')
nChange = 0;
temp1=zeros(3,3);
temp2=zeros(3,3);
img1=double(img1);
img2=double(img2);
img3=double(img3);
% 计算5*5大小的窗口的相关系数
for i=2:row-1
for j=2:col-1
temp1=[img1(i-1,j-1),img1(i-1,j),img1(i-1,j+1);img1(i,j-1),img1(i,j),img1(i,j+1);img1(i+1,j-1),img1(i+1,j),img1(i+1,j+1)];
temp2=[img2(i-1,j-1),img2(i-1,j),img2(i-1,j+1);img2(i,j-1),img2(i,j),img2(i,j+1);img2(i+1,j-1),img2(i+1,j),img2(i+1,j+1)];
corr=corrcoef(temp1,temp2);
if(abs(corr(1,2))<threshold)
img3(i,j)=0;
nChange = nChange+1;
end
end
end
end
img_res = img3;
3 仿真结果
4 参考文献
[1]张孟君, 李晨钊, 舒红,等. 基于MATLAB的遥感图像变化检测[J]. 国土资源遥感, 2005(4):5.
博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。
部分理论引用网络文献,若有侵权联系博主删除。