2020-08-13 影象處理入門軟體應該怎麼選?Opencv matlab 和Python

2020-08-13 12:42:58

一,openCV不是一種語言,而是是一個開源計算機視覺庫,封裝了很多函數,但是想要學到東西,從最底層的函數寫起。

初學者可以參考視訊:https://blog.csdn.net/jia20003/article/details/107920069

或者對這OpenCV tutorials的c++API介面寫一遍:https://docs.opencv.org/master/d9/df8/tutorial_root.html

優點:免費,可以看到原始碼,自己修復,有大量經過優化的程式碼庫,有大型的社羣。

缺點:入門困難,程式碼資料少,文件很少會貼出程式碼的例子,相比於 OpenCV(Python),OpenCV(C++)只含有一個小型的機器學習演算法子集。對於新的演算法驗證不是很方便。

 

二,Python也是必須會的,後期如果做系統需要使用。可以快速驗證演算法設想,影象領域中的深度學習大量的工作也可以完成,MATLAB雖然也有,但是會比較侷限,資料比較少,但是Python更像只用於演算法研究,在工程邊緣端佈置演算法,通常還需要轉化爲C++,Python裏面實現了OpenCV的介面,並且還有很多深度學習的框架,

如果是新手想要快速上手 用Python會比較快,先打下基礎,如果要學習比較高層的影象處理,Python中的深度學習比較成熟,

python. 入門可以看 http://accu.cc 的文章,常用演算法都有講解

優點:用 matplotlib 去進行結果視覺化這方法,幾乎可與 MATLAB 媲美。可用於構件 web 後端 ,Python 同樣是一種多被用於建立網站的語言。像 Django、 Web2py 和 Flask 這樣的框架能使你快速地元件起 web 應用程式。所以,結合這些框架,我們使用 OpenCV(Python)會更加地容易。

缺點:很難找到更多關於 OpenCV(Python)的教學。缺乏技術支援,OpenCV 是使用 C/C++ 編寫的 :作爲一個開源庫,其好處之一就是能根據你自身需求進行修改。如果你想要修改 OpenCV,你就必須得修改 OpenCV 的 C/C++ 原始檔

 

三,MATLAB更多的是一種程式語言,驗證演算法方便快捷。

優點:MATLAB功能強大,程式設計不熟練者容易些,可以忽略很多語法,很多函數。特別是陣列運算,會簡單容易,有強大的矩陣庫 ,工具箱,視覺化和偵錯工具。

第一種:可結合 OpenCV 使用 :你可通過使用 MATLAB 的 OpenCV 介面 去連線 OpenCV。

第二種:如何讓OpenCV做爲MATLAB的工具箱:https://blog.csdn.net/healingwounds/article/details/78848001

缺點:學習路線曲折,MATLAB 是一個矩陣引擎。因此,我們需要遵循一種 MATLAB 的方式去書寫程式碼。內建的 MATLAB 程式會很快,但你所寫的程式碼往往會很慢,因此,人們往往會把計算密集型部分寫成 C,並通過使用 mex 整合在 MATLAB 的程式碼中。

通常使用 MATLAB / OpenCV(Python)來編寫新的演算法,而產品的完成則使用 OpenCV(C++)。

如果是搞研究,驗證演算法,建議用matlab。
如果在做影象處理的同時,還想學學程式設計,建議用python。
在學校用matlab。如果工作,覺得企業寫專案不用matlab。操作起來都一樣,只是語法習慣和api名字不同而已。

再放一句看到的話。一位真正的能者,在他們的口袋中往往會擁有許多不同的工具。能明智地挑選一個合適的工具去完成自己的工作。因此,能者並不與工具產生掛鉤,而是自身的技能。