广告
返回顶部
首页 > 资讯 > 后端开发 > Python >总结Python读取TIF影像的几种方法
  • 876
分享到

总结Python读取TIF影像的几种方法

pythonopencv图像处理 2023-09-02 18:09:00 876人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 导入模块TIF文件路径方法1:tiffile方法2:PIL方法3:opencv方法4:gdal方法1方法5:gdal

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录


总结python读取TIF影像的几种方法

导入模块

import numpy as npimport tifffile as tf           #tifffile是tiff文件的读取库from PIL import Imageimport cv2 as  cvimport gdal

TIF文件路径

path = r'C:/Users/HP/Desktop/tif/jpeg2000/Test_Images/tif/boat4_2100.tif'

方法1:tiffile

img_tf = tf.imread(path)print(img_tf.shape)                 #(2960, 1976, 3)

方法2:PIL

img = Image.open(path)         #可以读取单通道影像,读取3通道16位tif影像时报错(PIL.UnidentifiedImageError: cannot identify image file),支持4通道8位影像arr = np.array(img)print(arr.shape)

方法3:OpenCV

#arr = cv.imread(path,cv.IMREAD_UNCHANGED)        #(2960, 1976)arr = cv.imread(path,1)                          #(2960, 1976, 3)   备注:4波段的影像在opencv的读取方式中,显示为前三个波段,而且读取顺序为BGRprint(arr.shape)

方法4:gdal方法1

dataset = gdal.Open(path)arr = dataset.ReadAsArray()          #(3, 2960, 1976)arr = arr.transpose(1, 2, 0)         #(2960, 1976, 3)print(arr.shape)

方法5:gdal方法2

dataset = gdal.Open(path)bands = dataset.RasterCountfor band in range(1, bands + 1):    # 读取波段    src_band = dataset.GetRasterBand(band)    # 波段转数组    band_arr = src_band.ReadAsArray()    if band == 1:        height = band_arr.shape[0]        width = band_arr.shape[1]        arr = np.zeros((height, width, bands), dtype=np.uint8)    arr[:, :, band - 1] = band_arrprint(arr.shape)                     #(2960, 1976, 3)

在这里插入图片描述


来源地址:https://blog.csdn.net/a_13572035650/article/details/127715082

--结束END--

本文标题: 总结Python读取TIF影像的几种方法

本文链接: https://www.lsjlt.com/news/391163.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作