本篇文章目的將為你詳細羅列 Python OpenCV 的學(xué)習(xí)路線與重要知識點。核心分成 24 個小節(jié)點,全部掌握,OpenCV 入門階段就順利通過了。
01
OpenCV 初識與安裝
本部分要了解 OpenCV (Open Source Computer Vision Library)的相關(guān)簡介,OpenCv 可以運行在多平臺之上,輕量級而且高效,由一系列 C 函數(shù)和少量 C++類構(gòu)成,提供了 Python、Ruby、MATLAB 等語言的接口,所以在學(xué)習(xí)的時候,要注意查閱資料的語言實現(xiàn)相關(guān)問題。
這個階段除了安裝 OpenCV 相關(guān)庫以外,建議收藏官方網(wǎng)址,官方手冊,官方入門教程,這些都是最佳的學(xué)習(xí)資料。
模塊安裝完畢,需要重點測試 OpenCV 是否安裝成功,可通過 Python 查詢安裝版本。
02
OpenCV 模塊簡介
先從全局上掌握 OpenCV 都由哪些模塊組成。例如下面這些模塊,你需要找到下述模塊的應(yīng)用場景與簡介。
core、imgproc、highgui、calib3d、features2d、contrib、flann、gpu、legacy、ml、objdetect、photo、stitching。
整理每個模塊的核心功能,并完成第一個 OpenCV 案例,讀取顯示圖片。
03
OpenCV 圖像讀取,顯示,保存
安裝 OpenCV 之后,從圖像獲取開始進行學(xué)習(xí),包含本地加載圖片,相機獲取圖片,視頻獲取,創(chuàng)建圖像等內(nèi)容。
只有先獲取圖像之后,才能對圖像進行操作處理,信息提取,結(jié)果輸出,圖像顯示,圖像保存。
對于一個圖像而言,在 OpenCV 中進行讀取展示的步驟如下,你可以將其代碼進行對應(yīng)。
- 圖像讀取;
- 窗口創(chuàng)建;
- 圖像顯示;
- 圖像保存;
- 資源釋放。
涉及需要學(xué)習(xí)的函數(shù)有 cv2.imread()、cv2.namedWindow()、cv2.imshow()、cv2.imwrite()、cv2.destroyWindow()、cv2.destroyAllWindows()、 cv2.imshow()、cv2.cvtColor()、cv2.imwrite()、cv2.waitKey()。
04
攝像頭和視頻讀取,保存
第一個要重點學(xué)習(xí) VideoCapture 類,該類常用的方法有:
- open() 函數(shù);
- isOpened() 函數(shù);
- release() 函數(shù);
- grab() 函數(shù);
- retrieve() 函數(shù);
- get() 函數(shù);
- set() 函數(shù);
除了讀取視頻外,還需要掌握 Opencv 提供的 VideoWriter 類,用于保存視頻文件。
學(xué)習(xí)完相關(guān)知識之后,可以進行這樣一個實驗,將一個視頻逐幀保存為圖片。
05
OpenCV 常用數(shù)據(jù)結(jié)構(gòu)和顏色空間
這部分要掌握的類有 Point 類、Rect 類、Size 類、Scalar 類,除此之外,在 Python 中用 numpy 對圖像進行操作,所以 numpy 相關(guān)的知識點,建議提前學(xué)習(xí),效果更佳。
OpenCV 中常用的顏色空間有 BGR 顏色空間、HSV/HLS 顏色空間、Lab 顏色空間,這些都需要了解,優(yōu)先掌握 BGR 顏色空間。
06
OpenCV 常用繪圖函數(shù)
掌握如下函數(shù)的用法,即可熟練的在 Opencv 中繪制圖形。
- cv2.line();
- cv2.circle();
- cv2.rectangle();
- cv2.ellipse();
- cv2.fillPoly();
- cv2.polylines();
- cv2.putText()。
07
OpenCV 界面事件操作之鼠標(biāo)與滑動條
第一個要掌握的函數(shù)是鼠標(biāo)操作消息回調(diào)函數(shù),cv2.setMouseCallback() ,滑動條涉及兩個函數(shù),分別是:cv2.createTrackbar() 和 cv2.getTrackbarPos()。
掌握上述內(nèi)容之后,可以實現(xiàn)兩個案例,其一為鼠標(biāo)在一張圖片上拖動框選區(qū)域進行截圖,其二是通過滑動條讓視頻倍速播放。
08
圖像像素、通道分離與合并
了解圖像像素矩陣,熟悉圖片的像素構(gòu)成,可以訪問指定像素的像素值,并對其進行修改。
通道分離函數(shù) cv2.split(),通道合并函數(shù) cv2.merge()。
09
圖像邏輯運算
掌握圖像之間的計算,涉及函數(shù)如下:
- cv2.add();
- cv2.addWeighted();
- cv2.subtract();
- cv2.absdiff();
- cv2.bitwise_and();
- cv2.bitwise_not();
- cv2.bitwise_xor()。
還可以研究圖像乘除法。
-
matlab
+關(guān)注
關(guān)注
186文章
2981瀏覽量
231103 -
C++
+關(guān)注
關(guān)注
22文章
2114瀏覽量
73890 -
OpenCV
+關(guān)注
關(guān)注
31文章
635瀏覽量
41595
發(fā)布評論請先 登錄
相關(guān)推薦
PHP基礎(chǔ)學(xué)習(xí)知識點詳細資料匯總免費下載
![PHP基礎(chǔ)<b class='flag-5'>學(xué)習(xí)</b><b class='flag-5'>知識點</b>詳細資料<b class='flag-5'>匯總</b>免費下載](https://file.elecfans.com/web1/M00/8D/EA/o4YBAFyvDmaAAClzAAJpfjjY-iI136.png)
PHP基礎(chǔ)學(xué)習(xí)知識點匯總免費下載
![PHP基礎(chǔ)<b class='flag-5'>學(xué)習(xí)</b><b class='flag-5'>知識點</b><b class='flag-5'>匯總</b>免費下載](https://file.elecfans.com/web1/M00/8F/66/o4YBAFzAJd6APaqlAANbo1NtF0U895.png)
評論