python储存与读取图片_Python下opencv使用笔记(一)(图像简单读取、显示与储存)...
寫(xiě)在之前
從去年開(kāi)始關(guān)注python這個(gè)軟件,途中間間斷斷看與學(xué)過(guò)一些關(guān)于python的東西。感覺(jué)python確實(shí)是一個(gè)簡(jiǎn)單優(yōu)美、easy上手的腳本編程語(yǔ)言,眾多的第三方庫(kù)使得python異常的強(qiáng)大。能夠處理很多不同的問(wèn)題,同一時(shí)候它的很多開(kāi)源免費(fèi)的庫(kù)使得python的使用也是十分的廣泛。
在科學(xué)計(jì)算、數(shù)據(jù)處理與圖像領(lǐng)域,自己以前一直在使用matlab。感覺(jué)matlab也是一個(gè)語(yǔ)言優(yōu)美、簡(jiǎn)單方便的編程語(yǔ)言,都說(shuō)matlab與python在某些領(lǐng)域是非常類似的,確實(shí)是這樣,就科學(xué)計(jì)算、數(shù)據(jù)處理上真是,matlab中很多科學(xué)計(jì)算的東西在python中基本上都有相應(yīng)的庫(kù)包包括進(jìn)去,比方numpy,matplotlib等等,這些都是強(qiáng)大而又適用的??墒且f(shuō)不同。那就是應(yīng)用層面的了。matlab是一個(gè)商業(yè)性質(zhì)的軟件,正版軟件也是異常的貴,個(gè)人感覺(jué)屬于研究性領(lǐng)域的用的較多,在工作后好像一般都不怎么用這個(gè)(可能比較貴的緣故)??墒强偟膩?lái)說(shuō)matlab相同在計(jì)算領(lǐng)域是強(qiáng)大無(wú)比的。
Opencv是一個(gè)開(kāi)源的計(jì)算機(jī)視覺(jué)庫(kù),從開(kāi)始研究圖像方面,并沒(méi)有真正接觸過(guò)它,使用的都是matlab帶的圖像處理庫(kù),如今看來(lái)他們非常多函數(shù)也是那么的神似??墒莖pencv畢竟是一個(gè)專業(yè)性的庫(kù)包,里面的很多函數(shù)matlab并沒(méi)有,并且從其使用面及推廣程度上看,opencv確實(shí)也是那么強(qiáng)大。
所以在圖像領(lǐng)域了解opencv(不管是python版本號(hào)的還是C++版本號(hào)的)都是必要的,可是對(duì)于簡(jiǎn)單適用的學(xué)習(xí)者來(lái)說(shuō)。了解了解python版的就足夠了。
(一)關(guān)于python
首先關(guān)于python想說(shuō)的是。單純的官網(wǎng)下載的python并不大,是一個(gè)最初的python。進(jìn)行一些簡(jiǎn)單的操作時(shí)能夠的??墒钱?dāng)你進(jìn)行復(fù)雜一點(diǎn)的時(shí)候,就須要很多第三方的安裝包。比方numpy等等,這些庫(kù)安裝進(jìn)去說(shuō)起來(lái)也不是非常復(fù)雜,網(wǎng)上有非常多教程,可是當(dāng)很多的包安裝的時(shí)候,有的庫(kù)包并沒(méi)有你的電腦的版本號(hào),等等還有很多因素導(dǎo)致你的庫(kù)包安裝不進(jìn)去,想想還是挺麻煩的。我自己以前就是安裝各種包快要崩潰了。最后索性找到了一個(gè)集成的軟件,就是把經(jīng)常使用的包都加進(jìn)去了的python,軟件是Ipython。是一個(gè)集成的科學(xué)計(jì)算軟件。里面集成了很多包,并且是一個(gè)神似matlab的軟件,有調(diào)試,測(cè)試。觀看變量數(shù)值等等很多相同的地方,所以假設(shè)你是想研究這樣面而又苦惱安裝包的話,就下載個(gè)這個(gè)安裝起來(lái)吧。
(二)Python下的opencv使用
本系列博客的重點(diǎn)是記錄python下學(xué)習(xí)opencv的方法、筆記與一些想法。關(guān)于這樣的類型主題。csdn上也有非常多,也有非常專業(yè)的,首推的就是以下這個(gè)博主寫(xiě)的一個(gè)PDF文件,確實(shí)是好東西(大感博主無(wú)私):
http://bbs.csdn.net/topics/390837851
http://pan.baidu.com/s/1jG62bhO
再有就是以下這個(gè)博主系列的博客,非常的好,能夠?qū)W習(xí):
http://blog.csdn.net/sunny2038/article/category/904451
在眾多資料下,簡(jiǎn)單記錄下自己的學(xué)習(xí)筆記。
(三)從頭開(kāi)始–讀取圖像
關(guān)于python下使用opencv讀取圖像。
首先須要導(dǎo)入opencv包,上面說(shuō)的那個(gè)Ipython并沒(méi)有opencv包,所以想使用的請(qǐng)先正確導(dǎo)入opencv包再說(shuō)。至于怎么導(dǎo)入,先下載個(gè)opencv包,里面有關(guān)于python的opencv包,把這個(gè)想辦法導(dǎo)進(jìn)去進(jìn)行了(非常easy,百度下。略過(guò)吧)。
關(guān)于Ipython的執(zhí)行界面,我的是這樣的(名字變成spyder了):
在讀取圖像之前,你得把你的做實(shí)驗(yàn)的圖像事先放到工作文件夾下才行。讀取函數(shù)是cv2.imread(),關(guān)于函數(shù)說(shuō)明:
cv2.imread(‘圖像名稱’?!蛇x參數(shù)’)
可選參數(shù)決定讀入圖像的模式:
0:讀入的為灰度圖像(即使圖像為彩色的)
1:讀入的圖像為彩色的(默認(rèn));
注意的是:即使圖像在工作空間不存在,這個(gè)函數(shù)也不會(huì)報(bào)錯(cuò),僅僅只是讀入的結(jié)果為none。好了。讀入一個(gè)圖像就是這樣的:
import cv2
img = cv2.imread(‘flower.jpg’)
當(dāng)你的import cv2執(zhí)行后沒(méi)有錯(cuò)誤了,那么就導(dǎo)入成功了。
(四)儲(chǔ)存圖像
儲(chǔ)存圖像函數(shù):cv2.imwrite(‘保存的圖像名’,圖像,‘參數(shù)’)
正常的圖像儲(chǔ)存使用就是cv2.imwrite(‘保存的圖像名’。圖像)。后面一個(gè)參數(shù)默認(rèn)。保存的圖像名還得帶類型,比方j(luò)pg,bmp等等,OpenCV眼下支持讀取bmp、jpg、png、tiff等經(jīng)常使用格式。第三個(gè)參數(shù)較復(fù)雜,還得分是jpg、bmp等等圖像的類型不同而不同,事實(shí)上就是決定了圖像儲(chǔ)存大小,清晰度的,默認(rèn)的就非常好。想細(xì)究的能夠看以下。這個(gè)里面有部分介紹:
(五)圖像顯示
Opencv自帶顯示圖像函數(shù)。可是較為復(fù)雜并且個(gè)人感覺(jué)不穩(wěn)定。這里在介紹一種顯示方法,就是使用庫(kù)包matplotlib(這個(gè)庫(kù)包Ipython自帶)來(lái)顯示圖像。
首先是opencv自帶函數(shù)顯示,一般要顯示一個(gè)圖像。在圖像有了之后,然后直接以下函數(shù)一起組合使用:
cv2.imshow('image',img)
cv2.waitKey(0)
cv2.destroyAllWindows()
函數(shù)cv2.imshow的第一個(gè)參數(shù)是名字,第二個(gè)是要顯示的圖。然而為了讓圖像在顯示屏上停留才有了以下兩句話一起使用。因?yàn)橄到y(tǒng)(32位與64位)的不一樣,有的時(shí)候會(huì)出現(xiàn)顯示不出來(lái),個(gè)人感覺(jué)opencv本身c語(yǔ)言寫(xiě)的。存在著系統(tǒng)上的差異,并且這樣的顯示方法無(wú)法保存圖像、調(diào)整圖像大小等等,這里介紹還有一種經(jīng)常使用且強(qiáng)大的顯示圖像方法,使用matplotlib庫(kù)包中的pyplot子包來(lái)顯示,這樣的顯示方法不但穩(wěn)定。還能夠調(diào)整大小、保存顯示的圖像等等。那么一般它的用法例如以下:
import cv2
from matplotlib import pyplot as plt
img = cv2.imread('good.jpg',0);#打開(kāi)為灰度圖像
plt.imshow(img, 'gray') #必須規(guī)定為顯示的為什么圖像
plt.xticks([]),plt.yticks([]) #隱藏坐標(biāo)線
plt.show() #顯示出來(lái)。不要也能夠,可是一般都要了
以下是顯示的上述圖,能夠看到會(huì)在一個(gè)新的界面顯示出來(lái):
總結(jié)
以上是生活随笔為你收集整理的python储存与读取图片_Python下opencv使用笔记(一)(图像简单读取、显示与储存)...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: python dataframe切片_p
- 下一篇: 今日头条适配方案_今日头条信息流广告创意