在同级目录完成tif和jpg的批量转换

import os
import cv2
import numpy as np
from osgeo import gdal #数据格式转化
def normalization(data):
_range = np.max(data) - np.min(data)
return (data - np.min(data)) / _range
def imgto8bit(img):
img_nrm = normalization(img)
img_8 = np.uint8(255 * img_nrm)
return img_8 def tif_jpg(rasterfile):
in_ds = gdal.Open(rasterfile) # 打开样本文件
xsize = in_ds.RasterXSize # 获取行列数
ysize = in_ds.RasterYSize
bands = in_ds.RasterCount
B_band = in_ds.GetRasterBand(1)
B= B_band.ReadAsArray(0, 0, xsize, ysize).astype(np.int16)
G_band = in_ds.GetRasterBand(2)
G = G_band.ReadAsArray(0, 0, xsize, ysize).astype(np.int16)
R_band = in_ds.GetRasterBand(3)
R = R_band.ReadAsArray(0, 0, xsize, ysize).astype(np.int16)
R1 = imgto8bit(R)
G1 = imgto8bit(G)
B1 = imgto8bit(B)
data2= cv2.merge([R1,G1,B1])
return data2
if __name__ == '__main__':
path=r"F:\algorithm\算法练习\拼接与镶嵌\test2_next"
classs = os.listdir(path)
for idx, folder in enumerate(classs):
if folder.endswith('tif') or folder.endswith('tiff') :
ori_image = os.path.join(path, folder)
print(ori_image)
if folder.endswith('tiff'):
result_name = os.path.basename(ori_image)[:-5]
else:
result_name = os.path.basename(ori_image)[:-4]
# print(result_name)
a = os.path.dirname(ori_image)
out = a + "\\" + result_name + ".jpg"
img=tif_jpg(ori_image)
cv2.imencode('.jpg', img)[1].tofile(out)

python tif转jpg的更多相关文章

  1. python 读hdf4文件,再转写成一个tif文件

    1.安装pyhdf包 (1)通过此链接查找并下载pyhdf包:https://www.lfd.uci.edu/~gohlke/pythonlibs/#pygame(根据自己的系统及python版本选择 ...

  2. 【Python 代码】3D TIF 拆成若干张tif (ISBI细胞数据集)

    from libtiff import * imgdir = TIFF3D.open("train-labels.tif") imgarr = imgdir.read_image( ...

  3. Python爬虫学习(10):Selenium的好基友PhantomJS

    上一节中我们学习了selenium,用python来操作浏览器,在做网页自动化测试的时候最好不过了 .如果我们来做爬虫用一个带界面的浏览器似乎不太好吧,那可咋办呢?别着急,下来我们要介绍的就是一款不带 ...

  4. python使用总结

    近来公司的测试部门要我们开发,按他们给我测试案例,写vba脚本,方便他们做自动化测试,老大把这事交给了我做.之前没写过vba,很多API都不会用,边写边谷歌,写得很慢. 我记得测试第一次做的是打开关闭 ...

  5. Python开源框架

    info:更多Django信息url:https://www.oschina.net/p/djangodetail: Django 是 Python 编程语言驱动的一个开源模型-视图-控制器(MVC) ...

  6. Python 利用pytesser模块识别图像文字

    使用的是python的pytesser模块,原先想做的是图片中文识别,搞了一段时间了,在中文的识别上还是有很多问题,这里做记录分享. pytesser,OCR in Python using the ...

  7. Python验证码识别处理实例(转载)

    版权声明:本文为博主林炳文Evankaka原创文章,转载请注明出处http://blog.csdn.net/evankaka 一.准备工作与代码实例 1.PIL.pytesser.tesseract ...

  8. 【python游戏编程之旅】第四篇---pygame中加载位图与常用的数学函数。

    本系列博客介绍以python+pygame库进行小游戏的开发.有写的不对之处还望各位海涵. 在上一篇博客中,我们学习了pygame事件与设备轮询.http://www.cnblogs.com/msxh ...

  9. python模块(os)

    os模块 os模块提供了许多与操作系统交互的接口 os.getcwd() -> str # 返回当前路径, 相当于pwd os.chdir("dirname") -> ...

随机推荐

  1. 获取不到自定义的request的header属性

    java获取headers的代码如下: // 获取http-header里面对应的签名信息 Enumeration<?> headerNames = request.getHeaderNa ...

  2. WebRTC 用例和性能

    WebRTC 用例和性能 实现低延迟.点对点传输是一项艰巨的工程挑战:有 NAT 遍历和连接检查.信令.安全.拥塞控制和无数其他细节需要处理.WebRTC 代表我们处理以上所有内容,这就是为什么它可以 ...

  3. spring框架的学习->从零开始学JAVA系列

    目录 Spring框架的学习 框架的概念 框架的使用 Spring框架的引入 概念 作用 内容 SpringIOC的学习 概念 作用 基本使用流程 SpringIOC创建对象的三种方式 通过构造器方式 ...

  4. template.js模板工具案例

    案例一 1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset=&qu ...

  5. linux笔记全(无图版)

    1.ls 查看当前目录下的所有内容 黑色的是文件,蓝色的是文件夹,也就是目录 2.rm -f anaconda-ks. cfg 彻底删除文件(如不确定,则需要先保存备份,也就是快照) 3.ifconf ...

  6. Windows协议 LDAP篇 - 域权限

    windows 访问控制模型 也就是大名鼎鼎的ACM,access control mode 由两部分组成的. 访问令牌(access tokens) 其中包含有关登录用户的信息(User SID,G ...

  7. python3.7安装和pycharm安装教程. 以及pycharm的破解教程

    前言: 供对python初学者查阅, pycharm破解教程参阅了: https://blog.csdn.net/u014044812/article/details/78727496 1. 安装py ...

  8. [NumPy]文件的保存和加载

    如果想看.ipynb文件,那就借一步说话!

  9. Solution of Cobertura Exception "touchJump" when Unit Test

    During unit test I encounter a "java.lang.NoSuchMethodError: net.sourceforge.cobertura.coverage ...

  10. 带你认识5G技术

    一.移动通讯的发展历程 1.1.移动通讯具有代际演进规律 "G"代表一代 每10年一个周期,如下图所示: 1.2.5G技术指标对比概述 主要的技术指标有:流量密度.连接数密度.时延 ...