文章目录
前言
matlab给影像加地理坐标信息,一直没有很系统的明白,现在学习并记录吧
一、geotiffread,geotiffwrite,geotiffinfo
fclose all
clear all
clc
filename='D:\sift_test\landsat_5.tif';
output_file_name='D:\landsat_5_copy.tif';
%% 给影像加地理坐标信息
[im_l,Geo]=geotiffread(filename);
info=geotiffinfo(filename);
geotiffwrite(output_file_name,im_l,Geo,'GeoKeyDirectoryTag',info.GeoTIFFTags.GeoKeyDirectoryTag);
二、matlab 实现对影像的拼接
%% mosaic 2 images (要求: 2张影像地理坐标投影:geographic,或者是 投影坐标系 ,但是两张影像行列数一致等基本信息一致)
X_west = imread('D:\matlab_mosaic\left.tif');
X_east = imread('D:\matlab_mosaic\right.tif');
X = [X_west X_east];
% 影像为地理坐标投影 下面函数的参数为: 'geographic'
% 若影像为投影坐标系, 则函数参数为: 'planar'
R_west = worldfileread('D:\matlab_mosaic\left.tfw', 'geographic', size(X_west));
R_east = worldfileread('D:\matlab_mosaic\right.tfw', 'geographic', size(X_east));
R = R_west;
R.XLimWorld = [R_west.XLimWorld(1) R_east.XLimWorld(2)];
R.RasterSize = size(X);
out_f='D:\matlab_mosaic\mosaic_li2.tif';
% 下面的coordRefSysCode 代码4326为WGS 经纬度坐标系。与原始影像对应。
% 若原始影像为投影坐标系,则修改 coordRefSysCode 即 找一些对应的EPSG code
coordRefSysCode = 4326;
geotiffwrite(out_f, X, R,'CoordRefSysCode', coordRefSysCode);