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

關(guān)于python中不同函數(shù)讀取圖片格式的區(qū)別淺析

 更新時(shí)間:2022年03月17日 09:31:33   作者:東寫(xiě)西讀李老濕  
這篇文章主要給大家介紹了關(guān)于python中不同函數(shù)讀取圖片格式的區(qū)別,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

前言:關(guān)于uint8和float型數(shù)據(jù)

為了節(jié)省存儲(chǔ)空間,圖像一般存儲(chǔ)在一種特殊的數(shù)據(jù)類型——uint8(8位無(wú)符號(hào)整數(shù))中,以此方式存儲(chǔ)的圖像稱作8位圖像。

imread把灰度圖像存入一個(gè)8位矩陣,當(dāng)為RGB圖像時(shí),就存入8位RGB矩陣中。

因此,通過(guò)matlab以及各種python包(skimage,imageio)讀入圖像的數(shù)據(jù)類型都是uint8的,而在數(shù)據(jù)運(yùn)算中,如果不轉(zhuǎn)換成double格式,計(jì)算可能會(huì)產(chǎn)生溢出。

總之先記住一句話:uint8用來(lái)存儲(chǔ)和顯示(imshow),double用來(lái)運(yùn)算。

一、skimage.io。

讀取方法: skimage.io.imread('圖片地址')

返回的格式是uint8格式的數(shù)組。

二、imageio

讀取方法: imageio.imread('圖片地址').

返回的格式是一個(gè)imageio.core.util.Image類,其里邊的元素也是uint8格式的。

以上兩種類型均可以通過(guò)skimage.img_as_float轉(zhuǎn)換成float64格式的圖片。

轉(zhuǎn)換公式為::

元素轉(zhuǎn)換前后對(duì)比: 67(uint8) →→→ 0.2627(float64)。

在程序中的相互轉(zhuǎn)換:

1)把uint8轉(zhuǎn)換成float

轉(zhuǎn)換成float64。只需要利用skimage.img_as_float()函數(shù)即可。

如果需要轉(zhuǎn)換成float32格式,在float64的基礎(chǔ)上加上:.astype(np.float32)即可。

示例:

img = skimage.img_as_float(img)#從uint8轉(zhuǎn)換成float364
img = skimage.img_as_float(img).astype(np.float32)#從uint8轉(zhuǎn)換成float32

2)把float64轉(zhuǎn)換成uint8

這是目前來(lái)說(shuō)找到的既能達(dá)到目的又不使圖像失真的方法了:分別利用skimage包和numpy中的函數(shù)進(jìn)行轉(zhuǎn)換,如果直接用numpy函數(shù)進(jìn)行轉(zhuǎn)換,會(huì)使圖像失真。

img = skimage.img_as_float(img)#先轉(zhuǎn)換成uint16的格式。
img = np.uint8(img)#再轉(zhuǎn)換成uint8的格式。

總結(jié):以上的轉(zhuǎn)換中可以看出:能用圖形處理包的格式轉(zhuǎn)換函數(shù)就別用numpy中的格式轉(zhuǎn)換函數(shù),否則會(huì)出現(xiàn)各種各樣的問(wèn)題。

附:不同數(shù)據(jù)類型的對(duì)比:

Data typerange
uint80 to 255
uint160 to 65535
uint320 to 232
float-1 to 1 or 0 to 1
int8-128 to 127
int16-32768 to 32767
int32-231 to 231 - 1

補(bǔ)充:python處理圖像轉(zhuǎn)化為uint8格式

在python圖像處理過(guò)程中,遇到的RGB圖像的值是處于0-255之間的,為了更好的處理圖像,通常會(huì)將圖像值轉(zhuǎn)變到0-1之間

這個(gè)處理的過(guò)程就是圖像的uint8類型轉(zhuǎn)變?yōu)閒loat類型過(guò)程。img.astype('uint8')/255

float類型取值范圍 :-1 到1 或者 0到1

總結(jié)

到此這篇關(guān)于python中不同函數(shù)讀取圖片格式的區(qū)別的文章就介紹到這了,更多相關(guān)python讀取圖片格式的區(qū)別內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論