tif栅格影像上控制点文件只按行列号记录,基于matlab用该文件批量标记控制点,控制点标为十字,并输出在ENVI中可以看到的形式
时间: 2024-05-06 18:19:42 浏览: 98
以下是一个基于MATLAB的脚本,可以批量标记tif栅格影像上的控制点,并输出为ENVI格式的控制点文件:
```matlab
% 读取控制点文件
cp_file = 'control_points.txt';
cp_data = dlmread(cp_file);
% 读取栅格影像
img_file = 'raster.tif';
info = geotiffinfo(img_file);
img = imread(img_file);
% 创建一个新的ENVI控制点文件
envi_file = 'control_points.envi';
envihdrwrite(envi_file, 'control_points.hdr');
% 遍历所有控制点,标记十字
for i = 1:size(cp_data, 1)
row = cp_data(i, 1);
col = cp_data(i, 2);
img(row-1:row+1, col-1:col+1, :) = 255;
img(row-5:row+5, col, :) = 255;
img(row, col-5:col+5, :) = 255;
% 计算控制点的地理坐标
[x, y] = pix2map(info, col, row);
% 将控制点地理坐标写入ENVI控制点文件
envihdradd(envi_file, [x, y], 'geo');
end
% 保存标记后的栅格影像
imwrite(img, 'raster_cp.tif');
```
在这个脚本中,控制点文件`control_points.txt`是一个以空格分隔的文本文件,第一列为行号,第二列为列号。栅格影像`raster.tif`是需要标记控制点的栅格影像。标记完控制点后,脚本将生成一个新的栅格影像文件`raster_cp.tif`,其中控制点被标记为白色的十字。同时,脚本还会生成一个ENVI格式的控制点文件`control_points.envi`,其中包含每个控制点的地理坐标信息。这个文件可以在ENVI软件中打开,用于后续的几何校正等操作。
阅读全文