首先,对于多波段影像里面有很多信息(包括仿射变换、投影信息),因此首先要读取TIF数据。

其中里面包含根据仿射矩阵获取地理坐标信息等代码。

def readTif(fileName, xoff=0, yoff=0, data_width=0, data_height=0):'''读取tif影像数据'''dataset = gdal.Open(fileName)if dataset == None:print(fileName + "文件无法打开")#  栅格矩阵的列数width = dataset.RasterXSize#  栅格矩阵的行数height = dataset.RasterYSize#  波段数bands = dataset.RasterCount#  获取数据if(data_width == 0 and data_height == 0):data_width = widthdata_height = heightdata = dataset.ReadAsArray(xoff, yoff, data_width, data_height)  # np.array# print(type(data))#  获取仿射矩阵信息geotrans = dataset.GetGeoTransform()#  获取投影信息proj = dataset.GetProjection()arrXY = []  # 用于存储每个像素的(x,y)坐标for i in range(height):row = []for j in range(width):xx = geotrans[0] + i * geotrans[1] + j * geotrans[2]yy = geotrans[3] + i * geotrans[4] + j * geotrans[5]col = [xx, yy]row.append(col)arrXY.append(row)return width, height, bands, data, geotrans, proj, arrXY

接下来,是根据上述读取TIF的data作为基础,因为data是numpy.array,CHW格式数据,就可以根据三维数组思想将TIF格式转为JPG(PNG)。

def tif_to_jpg(src_tifs):'''tif转为jpg显示'''for src_tif in src_tifs:pre_img = readTif(src_tif)[3]# print('xxyy.type', type(xxyy))pre_img_one = pre_img[4, :, :]#R通道pre_img_two = pre_img[6, :, :]#G通道pre_img_three = pre_img[1, :, :]#B通道# height, width = pre_img.shape[1:]new_array = np.array([pre_img_one, pre_img_two, pre_img_three])#重新将三个通道组成为数组new_array = np.transpose(new_array, (1, 2, 0))#将CHW转为HWCimg = Image.fromarray(np.uint8(new_array))#数组转为图片所用的函数dir, file_name1 = os.path.split(src_tif)  # split将文件和路径分开(prename, suffix) = os.path.splitext(file_name1)  # splitext将文件名和后缀分开dst_jpg_path = r'F:\tif_to_rgb'dst_jpg = os.path.join(dst_jpg_path, prename+'.jpg')#改为png即可print(dst_jpg, img.shape)img.save(dst_jpg)

多波段影像 tif转为jpg(png)相关推荐

  1. 两种把体积很大的Tif转为可以快速加载的MBT(mbtiles)的方法

    序: 无人机航测现在是大众都可以玩了,航测数据的生成也随着大疆智图的发布更简单了.由于航测的分辨率极高(厘米级别对比传统卫星影像的米级),导致生成的正射影像(tif)要么被分块了,要么体积巨大,经常出 ...

  2. ENVI Classic:如何将多个单波段影像合成为一个多波段影像?

    目录 01 多个单波段影像合成为一个多波段影像 1.1 方法1-适用于没有地理空间参考的单波段影像 7.2 方法2-适用于地理空间参考的单波段影像合成 01 多个单波段影像合成为一个多波段影像 1.1 ...

  3. 【GlobalMapper精品教程】041:从多波段影像中提取单波段方法

    本实验讲解globalmapper中文24软件从多波段遥感影像中提取单波段方法. 参考阅读:[Envi风暴]Envi插件大全:多波段拆分工具的巧妙使用 文章目录 一.多波段影像介绍 二.单波段提取方法 ...

  4. ArcGIS影像TIF拼接

    ArcGIS影像TIF拼接 我们要使用的工具是Mosaic To New Raster 这个工具通过下面的路径找到: (我用的是ArcGIS 10.8) 输入影像 在这里输入多张待拼接的TIF 输出文 ...

  5. Google Earth Engine(GEE)——逐年批量下载sentinel-2多波段影像

    之前有一篇别人的博客,别人从那里问我下载全波段的影像,下载下来的影像无法展示,虽然波段是全的,但是影像却无法显示.这个其实也不是错误,只是没有对影像进行了合成,所以问题在于我们要把影像合成起来.之前这 ...

  6. 开源影像tif切图工具gdal2tiles部署以及切图

    切片效果图 安装python,这个网上很多教程,参照网上教程安装即可,这里不再描述. python安装python版本的gdal,以我本机python3.7版本为例: 下载gdal的whl文件安装包, ...

  7. 踩坑实录——多光谱影像(.tif)输入深度学习网络训练

    项目场景: 从github下载了fastercnn_Resnet50的目标识别网络,尝试把多光谱影像数据集(.tif)输入进去进行训练,由于本人是刚接触深度学习的小白,网上又没有找到相关教程,只能一边 ...

  8. GeoServer发布tif和Img格式影像(可去黑边)

    前言:GeoServer默认是支持发布tif影像的,但默认不支持发布img影像,img影像的发布需要安装GDAL的拓展,如果你还不知道如何安装GDAL拓展,可以移步这篇博客:GeoServer安装GD ...

  9. 使用SHP数据批量裁剪TIF图像并转为JPG格式

    问题描述 已有数据:1张大范围的遥感影像和1张裁剪为同一大小的shp数据 使用工具:ArcPy 实现目标: 1.shp数据按照属性分块输出 2.使用shp数据批量裁剪遥感影像,将影像裁剪为小块的tif ...

最新文章

  1. linux启动时间极限优化,Linux启动时间的极限优化
  2. 【C 语言】C 项目开发代码规范 ( 形参合法性判断 | 函数返回值局部变量 | 函数中不用全局变量 | 函数中使用局部变量接收形参 | 函数返回值 | 形参作返回值 | 形参返回值处理 )
  3. C++STL之vector的说明及使用
  4. python epoll 并发_Python语言之python并发原理(阻塞、非阻塞、epoll)
  5. 组件开发之Asp.net服务器控件Collection[集合]属性的设计时支持--编辑、保存
  6. Ubuntu 想在 Windows 的 WSL 中做到领先
  7. 吴恩达深度学习5.3笔记_Sequence Models_序列模型和注意力机制
  8. 零售连锁专卖信息化解决方案简介之一
  9. spring.net与OracleODP结合时发生的版本问题
  10. Visual Studio 2017 编译Clang
  11. SQL:查询表中各类点数量以及各类点满足某条件数量
  12. 利用C#编写一个附和闭合导线平差程序
  13. 2021北京地区高考成绩排名查询,2021年北京理科高考成绩排名一分一段表,北京理科成绩排名查询...
  14. 怎么批量给文件名加统一的几个字?
  15. python函数之plot函数(一)
  16. 给excel设置格式
  17. Swift 进阶 | 看得见的算法
  18. java获取微信公众号二维码
  19. 快速幂求解斐波那契数列
  20. 对抗样本论文阅读Intriguing properties of neural networks

热门文章

  1. 【C语言】转义字符\xhh和\ddd到底如何判断?被兔子个数支配的恐惧你也有吗?(每日小细节001)
  2. 初级计算机信息处理员笔试题,初级信息处理技术员计算机系统基础知识考试卷模拟考试^题...
  3. 三防手持平板电脑在工业的发展趋势
  4. Wattagio for Mac(Mac电池管理软件)v1.12.11
  5. zz 用chrome模拟各种手机
  6. 记一次遇到挖矿程序的经历
  7. Vue之Axios AJAX封装
  8. 第十三章:项目相关方管理 - (13.1 识别相关方)
  9. 企业选择局域网即时通讯软件的必要性是什么?
  10. 用JAVA 做一个简易版的坦克大战(只实现基本功能)