圖像的輸入輸出與顯示---OpenCV-Python開發(fā)指南(30)

前言

在講解后面的采樣以及傅里葉變換之前,我們需要掌握python對(duì)圖像的輸入、輸出以及顯示等操作。

本篇涉及都是簡單的圖像顯示保存等操作,但是后面基于此復(fù)雜的變換都會(huì)或多或少用到這些知識(shí)。所以,別看非常簡單,應(yīng)用起來還是非常多的。

使用PIL讀取,保存和顯示圖像

在PIL包中,使用Image.open()函數(shù)讀取磁盤圖像。獲取圖像后,我們可以完整的獲取圖像的寬高,分辨率等信息。

from PIL import Image

img=Image.open("4.jpg")

print("圖像寬度:"+str(img.width))
print("圖像高度:"+str(img.height))
print("圖像分辨率:"+img.format)
print("圖像模式:"+img.mode)

img.show()

運(yùn)行之后,圖片這些信息都會(huì)完整的顯示出來:


1.png

而對(duì)于識(shí)別圖像內(nèi)容來說,我們一般都是將圖像轉(zhuǎn)換為灰度圖像。而PIL包轉(zhuǎn)換為恢復(fù)圖像的方式如下:

img=Image.open("4.jpg")
imgL=img.convert("L")
imgL.show()

運(yùn)行之后,灰度圖像會(huì)通過默認(rèn)的電腦圖片顯示程序,顯示出來。


2.png

至于存儲(chǔ)圖像,我們通過如下代碼實(shí)現(xiàn):

imgL.save("1111111.jpg")

使用matplotlib讀取,保存和顯示圖像

在OpenCV中,我們對(duì)圖像進(jìn)行直方圖處理的時(shí)候,會(huì)經(jīng)常輔助用到matplotlib包。所以,我們有必要掌握matplotlib包讀取,保存與顯示圖像。

from matplotlib.image import imread
import matplotlib.pyplot as plt

img = imread("4.jpg")#讀取圖像
print(img.shape, img.dtype, type(img))#輸出圖像的參數(shù)
plt.figure(figsize=(10, 10))
plt.axis("off")#不顯示坐標(biāo)軸
#顯示圖像
plt.imshow(img)
plt.show()
plt.savefig("11111.jpg")#保存圖像

上面注釋非常詳細(xì),這里就不在贅述。不過,其imshow()方法還有一個(gè)插值參數(shù)interpolation。

plt.imshow(img,interpolation="spline16")

通過interpolation參數(shù),我們可以使用不同的插值對(duì)圖像進(jìn)行處理。

使用scikit-image讀取,保存和顯示圖像

scikit-image包與PIL一樣,可以讀取圖像后獲取圖像的詳細(xì)參數(shù)信息。同時(shí),它也可以與OpenCV一樣進(jìn)行色彩空間的轉(zhuǎn)換。

from skimage import io,color
import matplotlib.pyplot as plt
img=io.imread("4.jpg")#讀取圖像
print(img.shape,img.dtype,type(img))#輸出圖像參數(shù)
plt.axis("off")#去除坐標(biāo)軸
io.imsave("11111.jpg",img)#保存圖像
hsv=color.rgb2hsv(img)#圖像轉(zhuǎn)換為hsv色彩空間
#顯示圖像
plt.imshow(hsv)
plt.show()

scikit-image與matplotlib讀取后的格式都是numpy.ndarray。


3.png

4.png

下面是skimage庫子模塊:

模塊 作用
io 讀取,保存和顯示圖片和視頻
color 色彩空間變換
data 提供一些測(cè)試圖片和樣本數(shù)據(jù)
filters 圖像增強(qiáng),邊緣檢測(cè),排序?yàn)V波器,自動(dòng)閾值等
draw 操作于numpy數(shù)組上的基本圖形繪制,包括線條,矩陣,圓和文本等
transform 幾何變換和其他變換,如旋轉(zhuǎn),拉伸和Radon(拉東)變換等
exposure 圖像強(qiáng)度調(diào)整,例如,直方圖均衡化等
feature 特征檢測(cè)和提取, 例如,紋理分析等
graph 圖論操作,例如,最短路徑
measure 圖像屬性測(cè)量,例如,相似度和輪廓
morphology 形態(tài)學(xué)操作,如開閉運(yùn)算,骨架提取等
novice 簡化的用于教學(xué)目的的接口
restoration 修復(fù)算法,例如去卷積算法,去噪等
segmentation 圖像分割為多個(gè)區(qū)域
util 通用工具
viewer 簡單圖形用戶界面用于可視化結(jié)果和探索參數(shù)
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容