想要将多个输入的tif图像裁剪到相同的地理坐标范围,我先用循环得到多个图像的共同地理坐标范围,但是如何根据坐标范围裁剪呢?有没有人指导一下?非常感谢
2条回答 默认 最新
- jinke2010_happy 2023-06-22 11:01关注
应该先读取待裁剪的多个TIFF图像的地理坐标信息,然后找到这些图像中横纵坐标的最小值和最大值,从而确定所需裁剪的坐标范围。接着,可以使用matlab中的imcrop函数对图像进行裁剪。
应该先读取待裁剪的多个TIFF图像的地理坐标信息,然后找到这些图像中横纵坐标的最小值和最大值,从而确定所需裁剪的坐标范围。接着,可以使用matlab中的imcrop函数对图像进行裁剪。 下面是一个简单的matlab代码示例,用于将多个TIFF图像裁剪到相同的地理坐标范围: Copy Code % 获取多个TIFF图像的地理坐标信息并计算共同的地理坐标范围 x_min = Inf; y_min = Inf; x_max = -Inf; y_max = -Inf; for i = 1:n % n为待裁剪的TIFF图像数量 info = geotiffinfo(filename{i}); % 读取第i个TIFF图像的地理坐标信息 x_min = min(x_min, info.CornerCoords.X); % 计算x坐标最小值 y_min = min(y_min, info.CornerCoords.Y); % 计算y坐标最小值 x_max = max(x_max, info.CornerCoords.X + info.RasterSize(2) * info.CellExtentInWorldX); % 计算x坐标最大值 y_max = max(y_max, info.CornerCoords.Y - info.RasterSize(1) * info.CellExtentInWorldY); % 计算y坐标最大值 end % 计算裁剪后图像的范围 crop_info = [x_min, y_max, x_max - x_min, y_max - y_min]; % 对每个TIFF图像进行裁剪 for i = 1:n img = imread(filename{i}); % 读取第i个TIFF图像 crop_img = imcrop(img, crop_info); % 裁剪图像 imwrite(crop_img, out_filename{i}); % 写入裁剪后的图像 end
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥100 连续两帧图像高速减法
- ¥15 组策略中的计算机配置策略无法下发
- ¥15 如何绘制动力学系统的相图
- ¥15 对接wps接口实现获取元数据
- ¥20 给自己本科IT专业毕业的妹m找个实习工作
- ¥15 用友U8:向一个无法连接的网络尝试了一个套接字操作,如何解决?
- ¥30 我的代码按理说完成了模型的搭建、训练、验证测试等工作(标签-网络|关键词-变化检测)
- ¥50 mac mini外接显示器 画质字体模糊
- ¥15 TLS1.2协议通信解密
- ¥40 图书信息管理系统程序编写