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中列表和数组的赋值,浅拷贝和深拷贝的实例讲解

    对Python中列表和数组的赋值,浅拷贝和深拷贝的实例讲解

    今天小编就为大家分享一篇对Python中列表和数组的赋值,浅拷贝和深拷贝的实例讲解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-06-06
  • 如何使用Python+ChatGPT批量生成论文

    如何使用Python+ChatGPT批量生成论文

    这篇文章主要介绍了用Python+ChatGPT批量生成论文,我用python+GPT-3 API开发了一个工具,可以直接从arxiv地址生成论文概述,需要的朋友可以参考下
    2023-02-02
  • python人工智能算法之人工神经网络

    python人工智能算法之人工神经网络

    这篇文章主要为大家介绍了python人工智能算法之人工神经网络示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-03-03
  • Python中的引用与copy介绍

    Python中的引用与copy介绍

    这篇文章主要以整型数据类型及列表为例,详细的介绍了再Python中的引用与copy的相关资料,需要的朋友可以参考下面文章内容
    2021-09-09
  • python简单验证码识别的实现过程

    python简单验证码识别的实现过程

    很多网站登录都需要输入验证码,如果要实现自动登录就不可避免的要识别验证码,这篇文章主要给大家介绍了关于python简单验证码识别的实现过程,需要的朋友可以参考下
    2021-06-06
  • pytorch实现保证每次运行使用的随机数都相同

    pytorch实现保证每次运行使用的随机数都相同

    今天小编就为大家分享一篇pytorch实现保证每次运行使用的随机数都相同,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-02-02
  • Anaconda 查看、创建、管理和使用python环境的方法

    Anaconda 查看、创建、管理和使用python环境的方法

    这篇文章主要介绍了Anaconda 查看、创建、管理和使用python环境的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-12-12
  • 基于Linux系统中python matplotlib画图的中文显示问题的解决方法

    基于Linux系统中python matplotlib画图的中文显示问题的解决方法

    下面小编就为大家带来一篇基于Linux系统中python matplotlib画图的中文显示问题的解决方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-06-06
  • Python绘制移动均线方法 含源代码

    Python绘制移动均线方法 含源代码

    上一篇文章我们介绍了Python绘制专业的K线图,讲解了数据获取、K线图绘制及成交量绘制等内容。本篇将在上一篇的基础上,继续讲解移动均线的绘制,需要的朋友可以参考下
    2021-10-10
  • tensorflow+k-means聚类简单实现猫狗图像分类的方法

    tensorflow+k-means聚类简单实现猫狗图像分类的方法

    这篇文章主要介绍了tensorflow+k-means聚类简单实现猫狗图像分类,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-04-04

最新评论