因為opencv中各個組件都是大家貢獻的代碼,而且opencv高度依賴機器的指令集等等特性,同時opencv也有眾多的可配置項,不同的機器配置不同的操作系統環境會對opencv編譯過程產生很多影響,所以如果使用makefile的方式來編譯opencv那麼opencv的安裝將變得十分的復雜。
『貳』 opencv指定模塊編譯精簡dll大小
opencv 官方提供有編譯好的dll,但太大了,本來就用圖片載入功能竟然要攜帶一個很大的dll很不值得,這時就需要到自己編譯了。
我們使用工具cmake gui打開要編譯的opencv源碼,然後勾選掉不要的模塊,進行編譯就搞定。
如圖,我只用到幾個模塊opencv_core,opencv_imgproc,opencv_highgui。
name 為BUILD_開頭的就是編譯模塊了,使用那個模塊就勾選那個模塊。
『叄』 OpenCV靜態庫編譯與鏈接
以OpenCV-4.0.0為例說明在Ubuntu環境下的靜態庫編譯與鏈接方法:
opencv依賴第三方的庫,所以當把opencv編譯成靜態庫的時候,注意要把它運行時必要的依賴庫也編譯進來,opencv源碼內有自己的3rdparty,主要有:libjpeg、libpng、libtiff、libzlib、libwebp、libprotobuf、ffmpeg(用到video時編譯)、libgtk(用於顯示界面顯示,伺服器部署不會用到),可以通過cmake -LA來查看配置的編譯信息,再根據信息考慮把opencv的哪些mole編譯進來。
鏈接時指定opencv的靜態庫以及依賴的庫。另外需要注意頭文件的問題,通過CMakeLists把opencv加入項目編譯時,由於opencv編譯完成後要install才會把所用的頭文件集中拷貝到一個地方,所以事先將頭文件拷貝到了項目的opencv目錄下。
『肆』 opencv為什麼需要python編譯
因為官方釋放的版本缺少了很多深度學習相關的模塊。OpenCV是一個基於BSD許可(開源)發行的跨平台計算機視覺庫,可以運行在Linux、Windows、Android和MacOS操作系統。opencv需要python編譯是因為官方釋放的版本缺少了很多深度學習相關的模塊。Python由荷蘭數學和計算機科學研究學會的GuidovanRossum於1990年代初設計,作為一門叫做ABC語言的替代品。
『伍』 使用opencv需要專用編譯器嗎
可以的,不過比較麻煩,如果是使用的話,可以到官網上下載2010相應的版本來直接安裝,這個是編譯好了的
『陸』 opencv-contrip一定要編譯才能用么
是的 contrip屬於opencv未發布部分模塊,需要從網上下載源碼,用cmake編譯生成dll庫,才能使用。