回覆列表
-
1 # 護國法師鳩摩小智
-
2 # 碼中尋樂
到底用哪個語言,這個還是要看你學習目的和對語言的熟悉程度,還有以下幾個方面:
1. 哪種語言更容易上手?
通常來看Python更用一點,語法沒那麼複雜,敲幾條程式碼就可以直接執行看結果了。C++本身的編碼能力要求就比較高,寫出來的程式還得編譯之後才能執行看效果。
2. 兩者的執行效率大嗎?
opencv原始程式碼就是用C++編寫的,其他語言的版本本身是對c++版本庫的再次封裝,從理論上來說原生的C++版本的效率會更高。 當然在有的場景下,效率差異可以忽略不計,主要看程式的使用情況。 如果是IO密集型的話,時間主要消耗在IO等待,那麼OpenCV的效能差異就不明顯了;如果是CPU計算密集型的話,那還是使用C++版本的更高。
3. 演算法原型研究大多數使用python。
演算法原型研究一般來說經常性的修改,需要快速驗證各種演算法思想的正確性,python寫完就能看結果,很好的滿足了這一需求。
4. 工業化生產基本上用c++版本。
演算法到了生產環境,系統的效能絕大多數都花銷到各個演算法上面了,經常會出現CPU計算資源不夠的情況。 這時候必然要求演算法最佳化,壓榨效能,用C++版本是必然之選。
-
3 # 難得糊塗2570478
初學者還是用Python比較好,所謂初學者就是剛入門,不適合難度比較大的語言,而Python是比較公認的比較簡單的指令碼語言,資源比較豐富,開源庫比較多,可參考的程式碼比較多,而c++是公認的難度比較大的程式語言,對初學者來說,光學語言就需要大量的時間和精力,因此,對初學者來說,Python比c++合適。
看你任務需求,openCV作為影象處理界航母的存在,存在多語言介面,不只是py與cpp,甚至還有java。
如果你只是想寫寫演算法,建議你還是用python,因為python避免了複雜的指標操作,極大的簡化了程式碼量,配合numpy這個神器,演算法界無敵。
如果你要造輪子或者工業化部署亦或是跨平臺(移動端/嵌入式)處理影象工程,建議還是用cpp。我開發內部的影象前向傳播框架的時候也參考了CV重寫了Mat。畢竟要壓榨計算機效能,顯然cpp結合內聯彙編是最好的選擇。