opencv編譯相關問題記錄

2021-10-06 17:59:44 字數 1296 閱讀 6204

在編譯opencv時,一般都是編譯成為動態庫,但是有時為了方便移植或者在其他地方安裝,會需要將其編譯成靜態庫的形式。這個時候只需要將cmake的 build_shared_libs 引數設為 off即可 。可以採用如下命令來進行編譯:

cmake \

-d cmake_build_type=release \

-d cmake_install_prefix=/usr/local \

-d install_c_examples=off \

-d install_python_examples=off \

-d build_examples=off \

-d with_cuda=off \

-d build_shared_libs=off \

-d with_ipp=off \

-d build_tests=off \

-d build_perf_tests=off \

-d with_1394=off \

-d with_ffmpeg=off \

-d with_opencl=off \

-d build_opencv_python3=on .

.

opencv編譯python binding時,預設生成的.so檔名是 cv2.so 。有時候我們希望修改預設生成的檔名。可以通過如下步驟進行修改(假設希望修改後的庫的名字為linemod.so):

修改opencv-source/modules/python/common.cmake 檔案中的第56行

# old

output_name cv2

# new

output_name linemod # 注意沒有.so字尾

修改opencv-source/modules/python/src2/cv2.cpp檔案:

// 1. 修改 modulestr 變數的值

// old

#define modulestr "cv2"

// new

#define modulestr "linemod"

/* 2. 如果是 python 3 則使用 pyinit_linemod 替換檔案**現的 pyinit_cv2;

如果是 python 2 則使用 initlinemod 替換檔案**現的 initcv2

*/

修改完成後,按照正常的編譯流程編譯opencv,就可以得到乙個 linemod.so 檔案 。

reference docs:

ffmpeg 編譯問題記錄

解壓.configure enable nonfree enable shared disable static enable gpl enable libx264 enable ffmpeg disable asm disable optimizations disable stripping p...

OpenCV學習問題記錄(一)

int nrows 480,ncols 640 cv mat m1 8u m1 8u.create nrows,ncols,cv 8uc1 此刻表示建立乙個480x640大小的畫素塊,每個畫素都是單通道每個通道的位數都是8位,乙個位元組的。上述cv 8uc1中的8表示8位 uc表示uchar型別 1...

OpenCV學習問題記錄(五)

在特徵點檢測之後,需要描述特徵點位置 特徵等資訊,以便於後續匹配等工作的進行。以下提供brisk和sift兩種演算法的特徵點描述演算法,opencv將演算法都封裝了,呼叫起來比較簡單 注 sift演算法可能因為版權問題不能使用 include include include include incl...