python如何将.tif格式图批量转化为.jpg格式图

 更新时间:2024年06月26日 10:12:23   作者:Hu4459  
这篇文章主要介绍了python如何将.tif格式图批量转化为.jpg格式图问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

一、待解决的问题

1.因为很多公共图片数据集的图片格式为.tif格式,但是这样的图片格式在跑很多CV代码的时候,是不能兼容的,所以我们需要将其转化为.jpg格式之后,再对其进行后续操作;

2.其实很多图片软件就可以实现这一转化,例如windows自带的看图软件就可以将.tif直接另存为.jpg图片,从而实现格式的转化,但是也存在较大的问题,那就是它无法实现批量图片的转化,只能每次实现单张图片的转化,效率极其低下;

3.网上提供的很多python代码,在我亲身体验下并不能实现这一目的:①用opencv库读取tif图,若直接另存为,结果成为灰度图;②pillow库无法直接读取.tif格式的图片。

基于上述三条,所以需要一个靠谱有效的转化方法。

二、python代码

注:该代码仅适用于彩色.tif图片转化为彩色.jpg图片的情形

import os,sys
import cv2
import numpy as np
from skimage import io#使用IO库读取tif图片


def tif_jpg_transform(file_path_name, bgr_savepath_name):
    img = io.imread(file_path_name)#读取文件名
    img = img / img.max()#使其所有值不大于一
    img = img * 255 - 0.001  # 减去0.001防止变成负整型
    img = img.astype(np.uint8)#强制转换成8位整型
    # img = np.array([img,img,img])
    # img = img.transpose(1,2,0)
    print(img.shape)  # 显示图片大小和深度
    b = img[:, :, 0]  # 读取蓝通道
    g = img[:, :, 1]  # 读取绿通道
    r = img[:, :, 2]  # 读取红通道
    bgr = cv2.merge([r, g, b])  # 通道拼接
    cv2.imwrite(bgr_savepath_name, bgr)#图片存储


tif_file_path = r'D:\experiment\detection\dataset\CVC-ClinicDB\tif'# 为tif图片的文件夹路径
tif_fileList = os.listdir(tif_file_path)
for tif_file in tif_fileList:
    file_path_name = tif_file_path + '/' + tif_file
    jpg_path = r'D:\experiment\detection\dataset\jpg' + '/' + tif_file.split('.')[0] + '.jpg' #.jpg图片的保存路径
    tif_jpg_transform(file_path_name, jpg_path)

三、效果

3.1 原文件

3.2 转化后文件

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Python与DeepSeek的深度融合实战

    Python与DeepSeek的深度融合实战

    Python作为最受欢迎的编程语言之一,以其简洁易读的语法、丰富的库和广泛的应用场景,成为了无数开发者的首选,而DeepSeek,作为人工智能领域的新星,凭借其强大的大模型能力,为开发者们打开了一扇通往全新世界的大门,本文将详细介绍Python与DeepSeek的深度融合
    2025-02-02
  • Python中的二分查找Bisect库使用实战

    Python中的二分查找Bisect库使用实战

    在算法和数据结构中,二分查找是一种高效的搜索算法,可用于有序数据集合的查找,Python的bisect库为我们提供了便捷的二分查找实现,本文将深入探讨Bisect库的使用方法、性能优势,并通过丰富的示例代码展示其在实际应用中的灵活性和效果
    2024-01-01
  • TensorFlow内存管理bfc算法实例

    TensorFlow内存管理bfc算法实例

    今天小编就为大家分享一篇TensorFlow内存管理bfc算法实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-02-02
  • Python中动态检测编码chardet的使用教程

    Python中动态检测编码chardet的使用教程

    最近利用python抓取一些网上的数据,遇到了编码的问题。非常头痛,幸运的是找到了解决的方法,下面这篇文章主要跟大家介绍了关于Python中动态检测编码chardet的使用方法,需要的朋友可以参考借鉴,下面来一起看看吧。
    2017-07-07
  • PyTorch一小时掌握之神经网络气温预测篇

    PyTorch一小时掌握之神经网络气温预测篇

    这篇文章主要介绍了PyTorch一小时掌握之神经网络气温预测篇,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-09-09
  • python爬虫看看虎牙女主播中谁最“顶”步骤详解

    python爬虫看看虎牙女主播中谁最“顶”步骤详解

    这篇文章主要介绍了python爬虫看看虎牙女主播中谁最“顶”,本文分步骤通过图文实例相结合给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-12-12
  • Python列出一个文件夹及其子目录的所有文件

    Python列出一个文件夹及其子目录的所有文件

    这篇文章主要介绍了Python列出一个文件夹及其子目录的所有文件的方法,和python列出文件夹下的所有文件的四种方法,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2016-06-06
  • 使用Python通过oBIX协议访问Niagara数据的示例

    使用Python通过oBIX协议访问Niagara数据的示例

    这篇文章主要介绍了使用Python通过oBIX协议访问Niagara数据的示例,帮助大家更好的理解和学习python,感兴趣的朋友可以了解下
    2020-12-12
  • Tensorflow 实现将图像与标签数据转化为tfRecord文件

    Tensorflow 实现将图像与标签数据转化为tfRecord文件

    今天小编就为大家分享一篇Tensorflow 实现将图像与标签数据转化为tfRecord文件,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-02-02
  • Python脚本如何在bilibili中查找弹幕发送者

    Python脚本如何在bilibili中查找弹幕发送者

    这篇文章主要介绍了如何在bilibili中查找弹幕发送者,本文给大家分享小编写的一个python脚本来实现bilibili弹幕发送者,需要的朋友可以参考下
    2020-06-06

最新评论