matlab 对tif数据高程图的处理分析

temp=z(101:2200,101:2200) 

  根据图像属性可得此为2300*2300的tif图像,由于需要将其划分为9宫格,所以begin点设置为101,end点设置为2200,temp转化为可均分的2100*2100矩阵

for i=1:9

    switch i

        case  {1,2,3}

     G{i}=temp(1:700,1+(i-1)*700:i*700);

        case  {4,5,6}

     G{i}=temp(701:1400,1+(i-4)*700:(i-3)*700);

        case  {7,8,9}

     G{i}=temp(1401:end,1+(i-7)*700:(i-6)*700);

    end

end

首先明确概念,:在此处,举例i=1,temp(1:700, 1:700)表示的是截取矩阵1行到1行,1到700列的元素

 

 

 

 

for i=1:9

    b=i;

    a=330+i;

   subplot(a);

   imshow(G{1,i});

end

 

//明确subplot的使用方法:说明划分为3*3的图像块,p决定了每一图像块的显示位置

参考代码:

%% 第一张数字高程图的处理
clc;clear;close all;tic;
z=imread('附件3 距2400m处的数字高程图.tif');
%z=double(z);imshow(z);
% x=1:length(z);y=x;
% [X2,Y2]=meshgrid(x,y);
% %mesh(X2,Y2,double(z));
% %meshc(X2,Y2,double(z));
% [C,h]=contour(X2,Y2,double(z));
% axis([0 2300 0 2300 ]);
% colormap(gray);colorbar;
% toc;
%% 划分区域
temp=z(101:2200,101:2200);%转化为可均分的2100X2100九宫格矩阵
for i=1:9
    switch i
        case  {1,2,3}
     G{i}=temp(1:700,1+(i-1)*700:i*700);
        case  {4,5,6}
     G{i}=temp(701:1400,1+(i-4)*700:(i-3)*700);
        case  {7,8,9}
     G{i}=temp(1401:end,1+(i-7)*700:(i-6)*700);
    end
end
for i=1:9
    b=i;
    a=330+i;
   subplot(a);
   imshow(G{1,i});
end

  

图像处理结果为:将整个tif图像文件平均分为9块

原文地址:https://www.cnblogs.com/yezhaodan/p/7450937.html