matlab输出tif影像
时间: 2024-05-15 13:13:52 浏览: 121
在 MATLAB 中,可以使用 `imwrite` 函数将图像保存为 TIF 格式。下面是一个将图像保存为 TIF 的示例代码:
```matlab
% 读取图像
img = imread('example.jpg');
% 将图像保存为 TIF
imwrite(img, 'example.tif');
```
在 `imwrite` 函数中,第一个参数为要保存的图像数据,第二个参数为要保存的文件名,包括文件扩展名。你可以根据需要调整保存的文件名和路径。
相关问题
matlab读取tif影像,将 nodata值替换成-9999,并输出带有地理坐标系的代码
在MATLAB中,你可以使用`imread`函数来读取TIFF图像文件,然后使用`imfill`或`isfilled`配合`setnoshade`函数来替换nodata值,最后利用地理信息库(如`geotiffinfo`)添加地理坐标。以下是一个简单的步骤说明:
```matlab
% 1. 读取TIFF图像
img = imread('your_tif_file.tif'); % 替换 'your_tif_file.tif' 为你实际的TIFF文件路径
% 2. 检查并替换nodata值
if ~isfilled(img)
img(~isnan(img)) = -9999; % 如果有nodata,将其设置为-9999
end
% 3. 添加地理坐标信息
% 首先获取原始TIFF的地理坐标信息
gt = geotiffinfo('your_tif_file.tif');
originLonLat = gt.ImageGeolocation.XYOrigin; % 原点经纬度
pixelSize = gt.GeoTransform(1:2); % 单位长度对应的实际距离
% 创建GeoAxes,用于显示地理坐标
figure;
ax = usamap('world');
hold on
image(ax, img);
% 4. 绘制地理坐标轴和标签
% 根据获取的信息绘制地图范围和刻度线
drawmapboundary(ax);
xlabel(['经度 (' num2str(pixelSize(1), '%.3f') ' deg/pixel)'], 'Location', 'EastOutside')
ylabel(['纬度 (' num2str(pixelSize(2), '%.3f') ' deg/pixel)'], 'Location', 'NorthOutside')
% 5. 保存带有地理坐标的新TIFF
geotiffwrite('output_with_coordinates.tif', img, originLonLat, pixelSize); % 输出新的TIFF文件
```
记得将上述代码中的`'your_tif_file.tif'`替换为你要处理的实际TIFF文件路径。
matlab只按遥感tif影像行列号批量标记控制点,控制点输出为shape文件
以下是一个matlab脚本示例,可以按行列号批量标记遥感tif影像的控制点,并将输出保存为shape文件:
```matlab
% 读取遥感tif影像
img = imread('image.tif');
% 设置控制点标记半径
radius = 5;
% 手动选择控制点位置
figure;
imshow(img);
title('Select control points by clicking on the image');
hold on;
[x,y] = ginput();
plot(x,y,'ro');
% 将控制点行列号转换为投影坐标
info = imfinfo('image.tif');
x_proj = info.ModelPixelScaleTag(1) * x + info.ModelTiepointTag(4);
y_proj = info.ModelPixelScaleTag(2) * y + info.ModelTiepointTag(5);
% 创建shape文件
shp = shapewrite(struct('Geometry','Point','X',x_proj,'Y',y_proj),'control_points.shp');
% 显示控制点
figure;
imshow(img);
title('Control points');
hold on;
plot(x,y,'ro');
for i = 1:length(x)
rectangle('Position',[x(i)-radius,y(i)-radius,radius*2,radius*2],'Curvature',[1,1],'EdgeColor','r');
end
```
该脚本将遥感tif影像读入并显示,然后提示用户手动在影像上选择控制点位置。选择完毕后,将控制点行列号转换为投影坐标,并创建一个包含这些点的shape文件。最后,再次显示遥感tif影像,并将控制点标记为红色圆圈。
阅读全文