- 积分
- 201
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2012-4-12
- 最后登录
- 1970-1-1
|
登录后查看更多精彩内容~
您需要 登录 才可以下载或查看,没有帐号?立即注册
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都可以的。
|
-
-
|