遥感影像分割成多幅小图像方法 您所在的位置:网站首页 256乘256图片 遥感影像分割成多幅小图像方法

遥感影像分割成多幅小图像方法

2024-01-13 08:53| 来源: 网络整理| 查看: 265

目的

本人需要将一幅Landsat8影像,切割成多幅256 * 256的小幅影像,用于深度学习相关处理。 经过在envi中的可视化的裁剪,得到了一幅5130 * 5230的影像,我经过计算,发现可以横向切出 256 * 20,纵向同样切出256*20 =5120, 共计400幅影像。

方法

利用python

gdal模块读取影像并存入numpy数组利用循环和opencv进行写入(实际用的时候要用gdal,可关注我后面有关landsat8处理小工具的博文) https://blog.csdn.net/RSstudent/article/details/108724556?spm=1001.2014.3001.5501 其中代码的329-378行就是所需内容,还附带了地理编码和投影,地理信息不会丢失,可在实际中使用。利用os模块得到路径 代码 import numpy as np from osgeo import gdal from osgeo import gdal_array import cv2 import os filename = 'tiffbigcut.tif' dataset = gdal.Open(filename) datatype = dataset.GetRasterBand(1).DataType rows = dataset.RasterYSize columns = dataset.RasterXSize bands = dataset.RasterCount image = np.zeros((rows, columns, bands), dtype = gdal_array.GDALTypeCodeToNumericTypeCode(datatype)) for b in range(bands): band = dataset.GetRasterBand(b+1) image[:, :, b] = band.ReadAsArray() image_cut = image[:5120, :5120, :] for i in range(19): for j in range(19): image_save = image_cut[i*256:(i+1)*256, j*256:(j+1)*256, :] base_dir = os.getcwd() dir_name = 'images' dir = os.path.join(base_dir, dir_name) filename = str(i) + str(j) + '.png' path = os.path.join(dir, filename) cv2.imwrite(path, image_save) 结果展示

缩略图没经过2%linear拉伸,颜色显示较差 在这里插入图片描述



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有