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