GDAL实现.tif图像转为Tensor

from osgeo import gdal
from torchvision.transforms import functional as F

class ReadTiff(object):
    def readTif_to_Ndarray(self, img_path):
        dataset = gdal.Open(img_path)
        # 获得矩阵的列数
        self.width = dataset.RasterXSize
        # 栅格矩阵的行数
        self.height = dataset.RasterYSize
        # 获得数据
        self.data = dataset.ReadAsArray(0, 0, self.width, self.height)
        return self.data
	
	def Ndarray_to_Tensor(self,ndarray)
		'''
		这里的permute函数是变换维度的函数,我输入的tif维度是[7,448,448],但是
		gdal读取的时候是[448,7,448]和cv2的读取方式相似,所以这里用permute(1,0,2)把
		维度转换为正常的[C,W,H]
		'''
		F.to_tensor(ndarray).permute(1, 0, 2)
		return Tensor
		

实现方法非常简单,用这个方法可以将pytorch默认的PIL读取方法改为GDAL的读取方法,然后你的多波段影像图就可以快乐的在CNN中奔跑了!
在这里插入图片描述

  • 15
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 11
    评论
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值