用C 和python開發opencv程式比較?

時間 2021-05-09 01:48:38

1樓:Coldwings

1.乙個尿性,庫本身的差別並不大。

2.因為都是調的庫,差別仍舊不大。說用numpy.

array的,並不是唯一選擇,實際上仍然有Mat類,你也可以直接使用,並不一定要用numpy.array。坦白說,從效率來看,因為numpy有numba神器,有可能比cv.

Mat更快。然而限制所在在於GIL以及非庫運算中的速度限制。例如你非要寫幾個for迴圈而不願意用array/Mat的相關函式算符,慢一點也是沒辦法的。

由於GIL的存在,OpenCV在py上跑單個程序就被控在單核裡了,多執行緒基本上沒啥用,提高效率往往要多程序,手法嫻熟可能效率差距不大,太生僻有可能寫出慢十幾倍多玩意來。

3. 庫其實是一樣的PyOpenCV只是一層封裝而已。

4. Python寫著快但是其實坑很多。如果你說的「產品」是生產環境下工作的,而你自身對python的了解又不夠深入,那麼選擇C++會更好。

如果你很了解python了,或者說主要做快速成型驗證想法之類的活兒,Python有著寫起來省時省力的優勢,畢竟動態型別提供的方便足夠多,熟悉的話不會踩坑/不在意踩坑的話自然是怎麼方便怎麼來。

2樓:

1,差不多,基本呼叫引數都一樣,格式符合各自語言規範。

2,在我開發的程式中python比cpp明顯有差距,但是換到工作用的電腦上這個差距就看不錯來了,so,硬體配置好一些,用python做實時也是沒有問題的。外,感覺同樣的函式python就是比cpp慢一些,雖然上面說到python底層用的也是lib。

3,基本一樣。(python可能功能稍微差一點2.4.8版本有個函式沒在python中找到,但是也就那乙個)

4,python比較簡單,開發可能快一點(主要是軟體的其他部分可能比較容易開發)。

3樓:鍾宇騰

我的畢業設計就是用OpenCV 2寫的,前期使用C++寫了個Demo,最後的成品是用Python 2寫的。

兩者主要的區別在於介面和效率。

實際上Python和C++的OpenCV介面幾乎一樣,不同的是用C++的話,矩陣用的是cv::Mat,Python裡面用的是numpy.array,用法和介面都不一樣,但文件豐富,使用也非常方便,原理也相似。

效率方面,Python的介面實際上只是一層Binding,最終還是呼叫libopencv_*.so裡面的函式,所以在OpenCV這一層效率與C++是完全一致的。唯一不同的就是它的numpy.

array和cv::Mat。Numpy底層也是使用C Extension的方法寫,但相比C++版的OpenCV介面,Python的介面需要把Numpy的資料轉化成OpenCV的C介面可接受的輸入。

實測Python寫的程式會慢,但具體慢多少並沒有測試資料可支撐。

用Python寫實際上也不會比C++開發快多少,因為介面都是一樣的,我建議不如直接用C++寫。

我後面選Python實際上只是想試一下Python介面而已。

用python做介面開發用什麼好

章佳輝 推薦pyqt吧,元件比較豐富,介面也好看一些,入門的話開發難度上可能會比tkinter,wxpython大一些,不過差異沒那麼大,網上資料也很多,有的還可以參考c 版本的解決方案,基本上拿它做還是比較容易的,不過商用要付錢是真的,但是你非商業用途無所謂,等真的商用了也未必會在乎這幾千塊錢 三...

用c語言程式設計還是用Python好?

浪跡天涯學python 以為的經驗來說,取決你長期的目的,如果非程式設計師,只是解決一些工作的問題用python是最好的,簡單容易上手。而c語言更適合專業的程式設計師 愛吃花椒的小龍 看你用它幹嘛了,如果相對程式設計有完完全全的了解,就是c了,本科多年課程始終是它,學完之後雖然幹不了大專案 非精力 ...

python和c 選用哪個語言?

學了C 去學別的語言,用起來怎麼都不會順手。在.net平台下,C 的語法特性配合宇宙第一IDE,體驗是非棒的,在我所學習過的所有語言中,C 寫著是最舒服的。C 缺點也非常明顯,在早幾年一直是Windows獨佔,導致社群生態不如其他的一些語言,從.net開源以後有好轉。語言只是工具,選貼近需求的學吧。...