在tif上用matlab自动批量标记已有像素坐标的控制点,结果用envi的椭圆注记存储,并输出结果
时间: 2024-05-11 20:14:26 浏览: 187
以下是可能的解决方案:
1. 将tif文件导入到matlab中,并读取已有的像素坐标控制点。可以使用imread函数读取tif文件,使用xlsread函数读取包含控制点信息的excel文件。
2. 使用plot函数在tif图像上显示控制点,可以使用scatter函数显示散点图或plot函数显示线条图。确保控制点的坐标与tif图像上的像素坐标一致。
3. 根据控制点的坐标,使用impoint函数在tif图像上添加标记点。可以使用for循环自动批量添加标记点。
4. 根据标记点的坐标,使用enviwrite函数将椭圆注记写入envi格式的文件中。可以使用for循环自动批量写入注记。
5. 输出结果文件,包括tif图像和envi格式的椭圆注记文件。
下面是可能的matlab代码:
%读取tif图像和包含控制点信息的excel文件
tif = imread('image.tif');
[ctrl_x, ctrl_y] = xlsread('ctrl_points.xlsx');
%显示控制点
figure
imshow(tif)
hold on
plot(ctrl_x, ctrl_y, 'r*')
%添加标记点
for i = 1:length(ctrl_x)
h(i) = impoint(gca, ctrl_x(i), ctrl_y(i));
end
%写入注记文件
for i = 1:length(h)
pos = getPosition(h(i));
ellipse = [pos(1)-10 pos(2)-10 20 20 0];
enviwrite('result.ann', 'Ellipse', ellipse, 'append', true)
end
%输出结果文件
enviwrite('result.tif', tif)
```
阅读全文