爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 7309|回复: 3

如何在matlab中按经纬度画RGB三基色融合图

[复制链接]

新浪微博达人勋

发表于 2014-4-22 10:45:15 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x
Matlab处理数组非常好,画图也很直观,单参数等值线、线图和点图等画图功能也不错。
当遇到RGB三参数画图时,还没找到好方法。
现有5个数组分别为经度、纬度、可见光(R)、近红外(G)、远红外(B),它们是一一对应的,如何将R、G、B三通道数组按一一对应的经纬度画出图来?
测试用image函数:
代码如下:
clear;
aa=load('I:\xmu1\Terra_20130612_0259_visible_reflectance_test.txt');
R1=zeros(512,512);%可见光
G1=zeros(512,512);%近红外
B1=zeros(512,512);%远红外
lon2=zeros(512,512);%经度
lat2=zeros(512,512);%纬度
k=1;
for i=1:1:512
    for j=1:1:512
        lon1(k)=aa(k,1);
        lat1(k)=aa(k,2);
       lon2(i,j)=aa(k,1);
        lat2(i,j)=aa(k,2);
        if(aa(k,3)>=1.0)
            aa(k,3)=1.0 ;
        end
        R1(i,j)=aa(k,3);
        if(aa(k,4)>=0.25)
            aa(k,4)=0.25;
        end
        G1(i,j)=aa(k,4)*4;
        if(aa(k,5)<=248)
            B1(i,j)=0;
        elseif(aa(k,5)>=298)
                B1(i,j)=1;
        else
         B1(i,j)=(aa(k,5)-248)/50;
        end  
        k=k+1;
    end   
end
%[x,y]=meshgrid(lon1,lat1);
x=min(lon1):0.01:max(lon1);
y=max(lat1):-0.01:min(lat1);
c=zeros(512,512,3);
c(:,:,1)=R1(:,:);
c(:,:,2)=G1(:,:);
c(:,:,3)=B1(:,:);
figure(1)
image(x,y,c);
画出来的图见附件1,不能与经纬度一一对应,纬度还是从低到高标注的(次序颠倒了),比例也不协调
figure(1)
imshowe(x,y,c);
画出来的图见附件2,比例还可以,但也是不能与经纬度一一对应,坐标也不见了

哪位大侠画过这种图啊?怎么画的?有啥高招?IDL和matlab都可以的。



image.bmp
imshow.bmp
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-4-22 10:50:01 | 显示全部楼层
逝者用contourfm画一下或者pcolor看看。实在不行就书车程geotiff在arcgis中看看
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2014-4-22 13:09:38 | 显示全部楼层
kongfeng0824 发表于 2014-4-22 10:50
逝者用contourfm画一下或者pcolor看看。实在不行就书车程geotiff在arcgis中看看

还是不行啊
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-4-22 14:05:39 | 显示全部楼层
楼主注意发帖的位置,请在免积分提问专区提问,谢谢。
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表