前言
在講解后面的采樣以及傅里葉變換之前,我們需要掌握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ì)完整的顯示出來:

而對(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)的電腦圖片顯示程序,顯示出來。

至于存儲(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。


下面是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ù) |