tif栅格影像上控制点文件只按行列号记录,把matlib默认图像坐标系改为与tif一致,然后基于matlab用该文件批量标记控制点,控制点标为十字,并输出为ENVI可以看出控制点的tif的代码
时间: 2024-05-09 10:19:15 浏览: 152
以下是基于Matlab批量标记控制点并输出为ENVI文件的代码:
```matlab
% 定义tif文件路径和控制点文件路径
tif_path = 'path/to/tif/file';
cp_path = 'path/to/control/point/file';
% 读取tif文件
tif_info = geotiffinfo(tif_path);
nrows = tif_info.Height;
ncols = tif_info.Width;
% 读取控制点文件
cp_fid = fopen(cp_path, 'r');
cp_data = textscan(cp_fid, '%f%f%f%f', 'HeaderLines', 6);
fclose(cp_fid);
row = cp_data{1};
col = cp_data{2};
% 将控制点坐标转换为tif坐标系下的坐标
[x, y] = pix2map(tif_info, row, col);
% 标记控制点并输出为ENVI文件
cp_img = zeros(nrows, ncols);
for i = 1:length(x)
if round(x(i)) > 0 && round(x(i)) <= nrows && round(y(i)) > 0 && round(y(i)) <= ncols
cp_img(round(x(i)), round(y(i))) = 1;
end
end
enviwrite(cp_img, 'path/to/output/file', tif_info);
```
其中,`geotiffinfo`函数可以读取tif文件的元数据信息,包括坐标系等;`pix2map`函数可以将行列号转换为tif坐标系下的坐标;`enviwrite`函数可以将标记后的控制点输出为ENVI文件,以便查看控制点的位置和分布。
阅读全文