• 大小: 8.3MB
    文件类型: .zip
    金币: 2
    下载: 2 次
    发布日期: 2023-10-12
  • 语言: Matlab
  • 标签: 变化检测  MATLAB  

资源简介

学习遥感相关专业必不可少的代码资源,本GUI界面设计精美,包括相关系数法、归一化法和比值法三种变化检测方法

资源截图

代码片段和文件信息

function [ img_resnChange] = changedetect( ABmethodthreshold)
% 变化检测函数
% 输入:变化前后图像A、B,以及检测方法名method对应阈值threshold
% 输出:结果差异二值图像img_res,差异像素数nChange
img1=rgb2gray(A);
img2=rgb2gray(B);
[rowcol] = size(img1);
img3=ones(rowcol);
% 比值法
if strcmp(method‘ratio‘)
    nChange = 0;
    for i=1:row
        for j=1:col
           if(img1(ij)==0&&img2(ij)~=0)
               if(abs(img1(ij)/img2(ij)-1)>threshold)%阈值
                   img3(ij)=0;
                   nChange = nChange+1;
               end
           elseif(img2(ij)==0&&img1(ij)~=0)
               if(abs(img2(ij)/img1(ij)-1)>threshold)%阈值
                   img3(ij)=0;
                   nChange = nChange+1;
               end
           else
               if(abs(img1(ij)/img2(ij)-1)>threshold)%阈值
                   img3(ij)=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(ij)=(img1(ij)-min1)/(max1-min1);
            img2(ij)=(img2(ij)-min2)/(max2-min2);
        end
    end 
    for i=1:row
        for j=1:col
            if(abs(img1(ij)-img2(ij))>threshold)
                img3(ij)=0;
                nChange = nChange+1;
            end
        end
    end
end
% 相关系数法
if strcmp(method‘corrcoef‘)
    nChange = 0;
    temp1=zeros(33);
    temp2=zeros(33);
    img1=double(img1);
    img2=double(img2);
    img3=double(img3);
    % 计算5*5大小的窗口的相关系数
    for i=2:row-1
        for j=2:col-1
            temp1=[img1(i-1j-1)img1(i-1j)img1(i-1j+1);img1(ij-1)img1(ij)img1(ij+1);img1(i+1j-1)img1(i+1j)img1(i+1j+1)];
            temp2=[img2(i-1j-1)img2(i-1j)img2(i-1j+1);img2(ij-1)img2(ij)img2(ij+1);img2(i+1j-1)img2(i+1j)img2(i+1j+1)];
            corr=corrcoef(temp1temp2);
           if(abs(corr(12))               img3(ij)=0;
               nChange = nChange+1;
           end
        end
    end
end
img_res = img3;


 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2014-12-06 00:28  遥感图像变化检测\
     文件     4826954  2014-11-03 12:22  遥感图像变化检测\0804_1w.bmp
     文件     4826954  2014-11-03 12:22  遥感图像变化检测\0902_1w.bmp
     文件        2339  2014-12-03 19:57  遥感图像变化检测\changedetect.m
     文件       11382  2014-12-03 19:36  遥感图像变化检测\ImgChangeDetect.fig
     文件        7974  2014-12-03 19:56  遥感图像变化检测\ImgChangeDetect.m

评论

共有 条评论