python簡(jiǎn)單圖片操作:打開(kāi)\顯示\保存圖像方法介紹
一提到數(shù)字圖像處理,可能大多數(shù)人就會(huì)想到matlab,但matlab也有自身的缺點(diǎn):
1、不開(kāi)源,價(jià)格貴
2、軟件容量大。一般3G以上,高版本甚至達(dá)5G以上。
3、只能做研究,不易轉(zhuǎn)化成軟件。
因此,我們這里使用python這個(gè)腳本語(yǔ)言來(lái)進(jìn)行數(shù)字圖像處理。
要使用python,必須先安裝python,一般是2.7版本以上,不管是在windows系統(tǒng),還是linux系統(tǒng),安裝都是非常簡(jiǎn)單的。
要使用python進(jìn)行各種開(kāi)發(fā),就必須安裝對(duì)應(yīng)的庫(kù)。這和matlab非常相似,只是matlab里面叫工具箱(toolbox),而python里面叫庫(kù)或包。安裝這些庫(kù),一般都是使用pip來(lái)安裝。
使用python進(jìn)行數(shù)字圖片處理,還得安裝Pillow包。雖然python里面自帶一個(gè)PIL(python images library), 但這個(gè)庫(kù)現(xiàn)在已經(jīng)停止更新了,所以使用Pillow, 它是由PIL發(fā)展而來(lái)的。
pip install Pillow
一、圖片的打開(kāi)與顯示
from PIL import Image img=Image.open('d:/dog.png') img.show()
雖然使用的是Pillow,但它是由PIL fork而來(lái),因此還是要從PIL中進(jìn)行import. 使用open()函數(shù)來(lái)打開(kāi)圖片,使用show()函數(shù)來(lái)顯示圖片。
這種圖片顯示方式是調(diào)用操作系統(tǒng)自帶的圖片瀏覽器來(lái)打開(kāi)圖片,有些時(shí)候這種方式不太方便,因此我們也可以使用另上一種方式,讓程序來(lái)繪制圖片。
from PIL import Image import matplotlib.pyplot as plt img=Image.open('d:/dog.png') plt.figure("dog") plt.imshow(img) plt.show()
這種方法雖然復(fù)雜了些,但推薦使用這種方法,它使用一個(gè)matplotlib的庫(kù)來(lái)繪制圖片進(jìn)行顯示。matplotlib是一個(gè)專業(yè)繪圖的庫(kù),相當(dāng)于matlab中的plot,可以設(shè)置多個(gè)figure,設(shè)置figure的標(biāo)題,甚至可以使用subplot在一個(gè)figure中顯示多張圖片。matplotlib 可以直接安裝
pip install matplotlib
figure默認(rèn)是帶axis的,如果沒(méi)有需要,我們可以關(guān)掉
plt.axis('off')
打開(kāi)圖片后,可以使用一些屬性來(lái)查看圖片信息,如
print img.size #圖片的尺寸 print img.mode #圖片的模式 print img.format #圖片的格式
顯示結(jié)果為:
(558, 450)
RGBA
PNG
二、圖片的保存
img.save('d:/dog.jpg')
就一行代碼,非常簡(jiǎn)單。這行代碼不僅能保存圖片,還是轉(zhuǎn)換格式,如本例中,就由原來(lái)的png圖片保存為了jpg圖片。
再介紹下圖片保存為灰度圖的簡(jiǎn)單操作,非常簡(jiǎn)單,打開(kāi)圖片并轉(zhuǎn)換成灰度圖的方法是:
im = Image.open('a.jpg').convert('L)
轉(zhuǎn)換圖像格式:
im.save('aa.gif')
以上代碼把a(bǔ).jpg 打開(kāi)并轉(zhuǎn)換成灰度圖(像素值在0-255之間),然后保存成aa.gif格式??梢园焉弦恍写a中‘a(chǎn)a.gif'改成路徑加文件名,就可以保存到自己想要保存的地方了。
總結(jié)
以上就是本文關(guān)于python簡(jiǎn)單圖片操作:打開(kāi)\顯示\保存圖像方法介紹的全部?jī)?nèi)容,希望對(duì)大家有所幫助。有什么問(wèn)題歡迎留言指出。
相關(guān)文章
使用Python防止SQL注入攻擊的實(shí)現(xiàn)示例
這篇文章主要介紹了使用Python防止SQL注入攻擊的實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-05-05python實(shí)現(xiàn)一個(gè)簡(jiǎn)單的udp通信的示例代碼
這篇文章主要介紹了python實(shí)現(xiàn)一個(gè)簡(jiǎn)單的udp通信的示例代碼,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-02-02OpenCV讀取與寫(xiě)入圖片的實(shí)現(xiàn)
這篇文章主要介紹了OpenCV讀取與寫(xiě)入圖片的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-10-10YOLOv5改進(jìn)之添加SE注意力機(jī)制的詳細(xì)過(guò)程
作為當(dāng)前先進(jìn)的深度學(xué)習(xí)目標(biāo)檢測(cè)算法YOLOv5,已經(jīng)集合了大量的trick,但是還是有提高和改進(jìn)的空間,針對(duì)具體應(yīng)用場(chǎng)景下的檢測(cè)難點(diǎn),可以不同的改進(jìn)方法,下面這篇文章主要給大家介紹了關(guān)于YOLOv5改進(jìn)之添加SE注意力機(jī)制的相關(guān)資料,需要的朋友可以參考下2022-08-08python命令行參數(shù)argparse模塊基本用法詳解
argparse?是python自帶的命令行參數(shù)解析包,可以用來(lái)方便地讀取命令行參數(shù),這篇文章主要介紹了python命令行參數(shù)-argparse模塊基本用法,需要的朋友可以參考下2023-01-01