欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python如何將.tif格式圖批量轉(zhuǎn)化為.jpg格式圖

 更新時(shí)間:2024年06月26日 10:12:23   作者:Hu4459  
這篇文章主要介紹了python如何將.tif格式圖批量轉(zhuǎn)化為.jpg格式圖問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

一、待解決的問(wèn)題

1.因?yàn)楹芏喙矆D片數(shù)據(jù)集的圖片格式為.tif格式,但是這樣的圖片格式在跑很多CV代碼的時(shí)候,是不能兼容的,所以我們需要將其轉(zhuǎn)化為.jpg格式之后,再對(duì)其進(jìn)行后續(xù)操作;

2.其實(shí)很多圖片軟件就可以實(shí)現(xiàn)這一轉(zhuǎn)化,例如windows自帶的看圖軟件就可以將.tif直接另存為.jpg圖片,從而實(shí)現(xiàn)格式的轉(zhuǎn)化,但是也存在較大的問(wèn)題,那就是它無(wú)法實(shí)現(xiàn)批量圖片的轉(zhuǎn)化,只能每次實(shí)現(xiàn)單張圖片的轉(zhuǎn)化,效率極其低下;

3.網(wǎng)上提供的很多python代碼,在我親身體驗(yàn)下并不能實(shí)現(xiàn)這一目的:①用opencv庫(kù)讀取tif圖,若直接另存為,結(jié)果成為灰度圖;②pillow庫(kù)無(wú)法直接讀取.tif格式的圖片。

基于上述三條,所以需要一個(gè)靠譜有效的轉(zhuǎn)化方法。

二、python代碼

注:該代碼僅適用于彩色.tif圖片轉(zhuǎn)化為彩色.jpg圖片的情形

import os,sys
import cv2
import numpy as np
from skimage import io#使用IO庫(kù)讀取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防止變成負(fù)整型
    img = img.astype(np.uint8)#強(qiáng)制轉(zhuǎn)換成8位整型
    # img = np.array([img,img,img])
    # img = img.transpose(1,2,0)
    print(img.shape)  # 顯示圖片大小和深度
    b = img[:, :, 0]  # 讀取藍(lán)通道
    g = img[:, :, 1]  # 讀取綠通道
    r = img[:, :, 2]  # 讀取紅通道
    bgr = cv2.merge([r, g, b])  # 通道拼接
    cv2.imwrite(bgr_savepath_name, bgr)#圖片存儲(chǔ)


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 轉(zhuǎn)化后文件

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論