完整從代碼編譯OpenCV在很多情況下是必須的。總體上來看,都是下載、編譯、配置這三個過程,其中一些細節值得注意,記錄如下。這里以ubuntu為例,其他發行版可能略有不同。
1、安裝預置環境:
必須安裝依賴的庫
sudo apt-get install build-essential
sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
可以選擇安裝的
sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev
2、從github上下載相關代碼:
2020年5月3日 當前最新 https://github.com/opencv/opencv/archive/4.3.0.zip
這里我們只安裝基本的代碼,如果結合contrib的話請參考相關資料。比如
《(5編譯使用最新opencv)從零開始的嵌入式圖像圖像處理(PI+QT+OpenCV)實戰演練>
https://www.cnblogs.com/jsxyhelu/p/8000819.html
此外,如果從github上下載資料比較慢,請參考相關修改host的文章
3、打開cmake-gui開始編譯
總的流程是兩次Make,一次generate,其他情況一路回車。其中下載ipp比較消耗時間。

其中,第一次configure是讀出有哪些需要配置的內容的,第二次configure是確認這些需要配置的內容,generate是生成make可以編譯的內容。

而后進入目錄(比如上圖的opencv_bin目錄)進行
make
sudo make install
我建議使用cmake-gui而不是cmake,因為在安裝過程中,可能會出現一些問題,最好現場解決掉。
其中,make比較消耗時間,install是很快的。

4、
在QT中的配置並
編寫測試程序(如果不使用QT可以不看)
讀懂這段:
如果共享庫文件安裝到了/usr/local/lib(很多開源的共享庫都會安裝到該目錄下)或其它"非/lib或/usr/lib"目錄下, 那么在執行ldconfig命令前, 還要把新共享庫目錄加入到共享庫配置文件/etc/ld.so.conf中, 如下:
# cat /etc/ld.so.conf
include ld.so.conf.d
/
*.conf
# echo "/usr/local/lib" >> /etc/ld.so.conf
# ldconfig
我們肯定是需要修改的
最后,我的結果為:
INCLUDEPATH
+=
/usr
/local
/include
/opencv4 \
/usr
/local
/include
/opencv4
/opencv2
LIBS
+=
/usr
/local
/lib
/libopencv_highgui.so\
/usr
/local
/lib
/libopencv_core.so\
/usr
/local
/lib
/libopencv_videoio.so\
/usr
/local
/lib
/libopencv_imgcodecs.so\
/usr
/local
/lib
/libopencv_imgproc.so
