python如何將.tif格式圖批量轉(zhuǎn)化為.jpg格式圖
一、待解決的問(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)文章
對(duì)Python中列表和數(shù)組的賦值,淺拷貝和深拷貝的實(shí)例講解
今天小編就為大家分享一篇對(duì)Python中列表和數(shù)組的賦值,淺拷貝和深拷貝的實(shí)例講解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-06-06python人工智能算法之人工神經(jīng)網(wǎng)絡(luò)
這篇文章主要為大家介紹了python人工智能算法之人工神經(jīng)網(wǎng)絡(luò)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-03-03python簡(jiǎn)單驗(yàn)證碼識(shí)別的實(shí)現(xiàn)過(guò)程
很多網(wǎng)站登錄都需要輸入驗(yàn)證碼,如果要實(shí)現(xiàn)自動(dòng)登錄就不可避免的要識(shí)別驗(yàn)證碼,這篇文章主要給大家介紹了關(guān)于python簡(jiǎn)單驗(yàn)證碼識(shí)別的實(shí)現(xiàn)過(guò)程,需要的朋友可以參考下2021-06-06pytorch實(shí)現(xiàn)保證每次運(yùn)行使用的隨機(jī)數(shù)都相同
今天小編就為大家分享一篇pytorch實(shí)現(xiàn)保證每次運(yùn)行使用的隨機(jī)數(shù)都相同,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-02-02Anaconda 查看、創(chuàng)建、管理和使用python環(huán)境的方法
這篇文章主要介紹了Anaconda 查看、創(chuàng)建、管理和使用python環(huán)境的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-12-12基于Linux系統(tǒng)中python matplotlib畫(huà)圖的中文顯示問(wèn)題的解決方法
下面小編就為大家?guī)?lái)一篇基于Linux系統(tǒng)中python matplotlib畫(huà)圖的中文顯示問(wèn)題的解決方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-06-06Python繪制移動(dòng)均線(xiàn)方法 含源代碼
上一篇文章我們介紹了Python繪制專(zhuān)業(yè)的K線(xiàn)圖,講解了數(shù)據(jù)獲取、K線(xiàn)圖繪制及成交量繪制等內(nèi)容。本篇將在上一篇的基礎(chǔ)上,繼續(xù)講解移動(dòng)均線(xiàn)的繪制,需要的朋友可以參考下2021-10-10tensorflow+k-means聚類(lèi)簡(jiǎn)單實(shí)現(xiàn)貓狗圖像分類(lèi)的方法
這篇文章主要介紹了tensorflow+k-means聚類(lèi)簡(jiǎn)單實(shí)現(xiàn)貓狗圖像分類(lèi),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-04-04