西瓜瓜瓜瓜西 2023-06-22 10:51 采纳率: 75%
浏览 6
已结题

matlab裁剪图像到指定地理坐标范围

想要将多个输入的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
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 6月30日
  • 已采纳回答 6月22日
  • 创建了问题 6月22日

悬赏问题

  • ¥100 连续两帧图像高速减法
  • ¥15 组策略中的计算机配置策略无法下发
  • ¥15 如何绘制动力学系统的相图
  • ¥15 对接wps接口实现获取元数据
  • ¥20 给自己本科IT专业毕业的妹m找个实习工作
  • ¥15 用友U8:向一个无法连接的网络尝试了一个套接字操作,如何解决?
  • ¥30 我的代码按理说完成了模型的搭建、训练、验证测试等工作(标签-网络|关键词-变化检测)
  • ¥50 mac mini外接显示器 画质字体模糊
  • ¥15 TLS1.2协议通信解密
  • ¥40 图书信息管理系统程序编写