學習OpenCV,新手常會問我的十個問題

學習OpenCV,新手常會問我的十個問題

學習OpenCV,新手常會問我的十個問題


資料來源: https://mp.weixin.qq.com/s/MIH6ck779t80escYMvUkVQ


Q1

按照視頻做的,我怎麼顯示了不了圖像或者視頻

解答:

最常見的兩個原因如下:

-忘記waitKey(0) 或者waitKey(1)

-圖像/視頻文件路徑包含中文或者空格了,根本無法正確加載圖像。


Q2

我怎麼把我想要的區域取到,被自己蠢哭了

解答:

C++下,只要你有rect/box

直接這樣即可

Mat roi = image(rect)

就這麼簡單就可以獲取ROI區域了,針對不規則ROI區域,用下面的代碼搞定

bitwise_and(image, image, roi, mask)

其中mask是不規則ROI的遮罩區域。

Python下面截取矩形區域:

roi = image[y:y+height,x:x+width,:]

一句話搞定。


Q3

修改代碼之後出現waitKey(0)是紅色

解答:

直接關閉VS,重啟一下即可。


Q4

第一次運行程序,一直報錯說找不DLL文件

解答:

趕快去檢查/配置環境變量,看看有沒有把opencv_world+版本號d.dll所在路徑到系統環境變量path中去,如果沒有問題,重啟VS即可


Q5

OpenCV中怎麼沒有填充幾何對象的方法?

解答:

記得在繪製這些幾何形狀的時候把線寬參數設置為-1即可填充,大於零只會繪製描邊。記住就是這個參數lineWidth, 大於0表示描邊,小於零表示填充。對所有繪製圖形的API都是一樣。


Q6

我該學習OpenCV哪個版本,怎麼入門

解答:

現在最新版本是OpenCV4,直接從最新版本開始,避免浪費精力與時間,學完就領先別人一個身位。怎麼入門,簡單粗暴,從代碼開始,官方教程不錯,我們的視頻教程也不錯,系統化學習,遇到不懂的再查資料,針對性學習。銘記實踐是最好理論


Q7

VideoCapture讀視頻為什麼沒有聲音?為什麼我設置調整相機分辨率不起作用?

解答:

因為它只支持了視頻編解碼,不支持音頻,所以沒有聲音,更深入一點的原因,OpenCV是視覺處理庫,主要處理圖像與視頻,而不是聲音。VideoCapture設置相機分辨率不起作用,拜託請先檢查一下你的相機支持的分辨率是多少的,這個都沒搞清楚,就敢設置相機分辨率參數。


Q8

為什麼我編譯出來的OpenCV的lib裡面是一堆lib文件,沒有opencv_world相關lib文件

解答:

原因很簡單,記得cmake的時候把生成opencv world 選項勾上才可以


Q9

我是學習OpenCV C++版本還是Python版本

解答:

其實OpenCV現在SDK版本支持C++, Python,Java,JS等語言。學什麼語言主的SDK主要是看你想從事哪裡方向,如果想做機器視覺、相機開發的方向,建議學習OpenCV C++版本,如果是對開發板移植算法話,選擇C++,不過現在python也被很多開發板支持,特別是國外的智能硬件,多數都支持python語言開發,典型就是樹莓派。這個也是未來趨勢,所以選擇哪種語言,主要看個人喜好與興趣,學到精通才是王道。


10

OpenCV4與前面的版本有什麼區別

解答:

其實在傳統的圖像處理模塊中沒有什麼區別,但是OpenCV4對深度神經網絡支持,已經集成支持tensorflow/caffe的離線模型,OpenVINO的加速支持,從模型訓練到部署加速,OpenCV4技術棧可以全部搞定,非常值得學習,未來IOT設備支持與開發市場,OpenCV因為其開源屬性將會最受歡迎與得力的開發工具,所以簡單點說OpenCV4比前面的版本多了兩個核心技術加持,深度神經網絡與加速引擎技術

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *