經(jīng)典機(jī)器學(xué)習(xí),深度學(xué)習(xí),當(dāng)下這些熱門的詞匯不知不覺在我們學(xué)習(xí)(diaosi)氛圍濃重的大學(xué)蔓延開來(lái),作為與計(jì)算機(jī)專業(yè)毫不相干的,指揮摁下開機(jī)鍵,點(diǎn)開穿越火線嫻熟地操作wasd的我而言,當(dāng)周圍人討論opencv,tensorflow,sklearn這些玄幻詞匯時(shí),聽得我是一頭霧水。今天,重拾一年前敲擊hello world的自信,開啟了Python的opencv生涯。
壹 為什么選擇python?
作為時(shí)下最時(shí)尚的python語(yǔ)言,簡(jiǎn)潔的代碼,借助于向軍火庫(kù)一般的各種開源工具包,你可以完成你想做的任何事。數(shù)值計(jì)算這些numpy,scipy,數(shù)據(jù)分析工具pandas,可視化matplotlib,可以使得非計(jì)算機(jī)工科生甚至文科生輕松上手,爬取處理數(shù)據(jù)。作為膠水語(yǔ)言的python在opencv上的應(yīng)用不僅簡(jiǎn)單方便編寫代碼,其運(yùn)行速度有時(shí)甚至優(yōu)于c++等,讓你更加專注于目標(biāo)而不是語(yǔ)法結(jié)構(gòu)。最重要的是,如果你已經(jīng)下載過了anaconda python,安裝opencv只需要一行代碼就可完成!
貳 掌握anaconda和安裝opencv
anaconda是用于科學(xué)計(jì)算的免費(fèi)的python版本。可以在官網(wǎng)上下載anaconda,https://www.anaconda.com/,選擇windows還是linux或是蘋果的mac os??辞宄?2位還是64位便可以下載。不過,下載數(shù)小時(shí),經(jīng)常下載不成功是常事。這時(shí)候,強(qiáng)烈建議逛一逛清華或者中科大的鏡像站,下載變成分分鐘的事。
opencv的安裝:在網(wǎng)頁(yè)上下載好對(duì)應(yīng)版本的.whl文件后,打開你電腦的命令行,pip install一下就ok了。
叁 常見圖片的格式
作為圖像處理,那就需要知道常見的圖片格式有哪些。
比較老的有bmp格式,bmp格式無(wú)損及沒有壓縮像素,但麻煩的是圖片的體積偏大。
接著是jpg格式或者是jpeg格式,這是有損壓縮的模式,將像素信息用jpeg保存成文件再讀取出來(lái)。這個(gè)是我比較常處理的,用最少的磁盤空間得到最好的圖片質(zhì)量。
還有是png格式,是一種無(wú)損壓縮模式,用的是行程編碼算法,相比jpeg,更加適合存儲(chǔ)幾何特征比較強(qiáng)的圖片。
我們?cè)诳臻g搞笑圖片中??匆姷腉IF格式圖片,是多幀圖像的集合。我們處理讀取時(shí)也要一幀一幀讀。通過調(diào)節(jié)參數(shù)也可以控制顯示快慢。
我們常說(shuō)的黑白圖像,在計(jì)算機(jī)中有兩種。一種是位圖模式,是真真切切的非黑即白,這種圖像只有一位深度:0就是純黑,1就是純白。
還有一種圖像叫灰度圖像,在生活中我們常把灰度圖像作為黑白圖像。事實(shí)上,灰度圖像有8位深度,(0,0,0,0,0,0,0,0)是純黑,(1,1,1,1,1,1,1,1)是純白,其余介于1至255之間的就是不同深度的灰度圖像。
彩色圖像就是RGB圖像,顧名思義,RED,GREEN,BLUE,這三種色彩疊加組合可以構(gòu)成我們?nèi)搜劭吹降娜魏晤伾?,在?jì)算機(jī)處理彩色圖像時(shí),也是通過紅綠藍(lán)三個(gè)通道來(lái)進(jìn)行,每個(gè)通道又各有八個(gè)深度,由此,我們知道,理論上計(jì)算機(jī)可以構(gòu)成256的三次方種顏色!
肆 色彩空間轉(zhuǎn)換
hsv顏色模型更接近人感覺顏色的方式,H是色相,S是飽和度,V是亮度。
lab色彩空間:L:整張圖的亮度,a和b表示顏色多少,用于編碼顏色。
opencv提供了上百種顏色空間轉(zhuǎn)換方法,opencv做轉(zhuǎn)化時(shí),用到了cvtColor函數(shù)。
該函數(shù)用兩個(gè)參數(shù)足以,第一個(gè)是圖像名稱,第二個(gè)是轉(zhuǎn)換方式。
例如,我已經(jīng)讀入一個(gè)函數(shù),
img = cv2.imread(path,way),
其中path是路徑,way是讀入方式,灰度圖,彩色圖還是加載alpha通道。
接著, gray=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) 這就完成了彩色圖像與灰度圖像之間的轉(zhuǎn)化。
其中,cv2.COLOR_BGR2GRAY這個(gè)方式,如果轉(zhuǎn)化后還想要csv,就cv2.COLOR_BGR2CSV,如果想變更通道順序,那么cv2.COLOR_BGR2RGB就可以了,很好玩。
圖像縮放用cv2.resize函數(shù),例如變成400*400像素記得寫成cv2.resize(img,(400,400))。同樣如果想x方向縮小直接fx=0.5即可。
此外,圖像反轉(zhuǎn),圖像保存,閾值化處理等也被opencv包裝成了函數(shù),用起來(lái)也十分方便。
編輯:lyn
-
OpenCV
+關(guān)注
關(guān)注
32文章
642瀏覽量
42920 -
python
+關(guān)注
關(guān)注
56文章
4827瀏覽量
86781
原文標(biāo)題:淺淺淺淺談opencv
文章出處:【微信號(hào):zhuyandz,微信公眾號(hào):FPGA之家】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
【Milk-V Duo S 開發(fā)板免費(fèi)體驗(yàn)】SDK編譯、人臉檢測(cè)、OpenCV測(cè)試
如何用OpenCV的相機(jī)捕捉視頻進(jìn)行人臉檢測(cè)--基于米爾NXP i.MX93開發(fā)板

快速部署!米爾全志T527開發(fā)板的OpenCV行人檢測(cè)方案指南
為L(zhǎng)SDK構(gòu)建opencv時(shí)遇到的問題求解
OpenVINO?工具套件使用CRNN_CS模型運(yùn)行OpenCV* text_detection.cpp報(bào)錯(cuò)怎么解決?
無(wú)法在Windows Subsystem for Linux 2上使用對(duì)象檢測(cè)Python演示運(yùn)行YoloV4模型?
【AI實(shí)戰(zhàn)項(xiàng)目】基于OpenCV的“顏色識(shí)別項(xiàng)目”完整操作過程

RK3568 + OpenCV 會(huì)碰撞出什么火花?案例詳解:2-1 基于OpenCV的畫線實(shí)驗(yàn)
一個(gè)月速成python+OpenCV圖像處理

如何用OpenCV的相機(jī)捕捉視頻進(jìn)行人臉檢測(cè)--基于米爾NXP i.MX93開發(fā)板
手寫圖像模板匹配算法在OpenCV中的實(shí)現(xiàn)

基于OPENCV的相機(jī)捕捉視頻進(jìn)行人臉檢測(cè)--米爾NXP i.MX93開發(fā)板

Python中多線程和多進(jìn)程的區(qū)別

評(píng)論