【图像检测】基于计算机视觉实现遥感图像变换检测含Matlab源码

1 简介

变化监测是从不同时期的遥感图像中,定量地分析和确定地物变化的特征的过程,其中涉及到变化的类型、分布状况及变化信息的描述,即需要确定变化前后的地物类型,界限和分析变化的属性.本文采用在遥感软件中进行图像配准后再在MATLAB下使用差值法进行变化监测,能够监测出较好的变化效果.​

2 部分代码​

function [ img_res,nChange] = changedetect( A,B,method,threshold)% 变化检测函数% 输入:变化前后图像A、B,以及检测方法名method,对应阈值threshold% 输出:结果差异二值图像img_res,差异像素数nChangeimg1=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    endend% 归一化法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    endend% 相关系数法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    endendimg_res = img3;​​

3 仿真结果

4 参考文献

[1]张孟君, 李晨钊, 舒红,等. 基于MATLAB的遥感图像变化检测[J]. 国土资源遥感, 2005(4):5.

博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。

部分理论引用网络文献,若有侵权联系博主删除。

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
xiaoxingxing的头像xiaoxingxing管理团队
上一篇 2022年5月11日
下一篇 2022年5月11日

相关推荐