Linux下編譯OpenCV3總結

2021-07-25 03:38:31 字數 2581 閱讀 9305

opencv於2023年6月4號,在其官網上正式發布了最新的opencv version 3.0版本,貌似有挺多的更新。由於我要用到contrib模組的文字檢測工具,所以打算重新編譯一下。

首先,我們來到 opencv 在 github 上的主頁,就可以看到  下有 opencv(主專案),opencv_extra(額外的資料),opencv_contrib(非正式發行的模組),copencv_3rdparty(用到的第三方庫),等等子專案。我要用到的 text detection 演算法就在 contrib 裡面。

git clone 

git clone

接著我們要新建乙個資料夾,叫 release 好了,我們要在這個資料夾下編譯和安裝 opencv,linux下命令如下:

mkdir release && cd release
然後,我們要用 cmake 這個工具來編譯整個專案的原始檔,放心,makefile 什麼的已經都給配置好了,我們只需要執行 cmake 命令,加一些我們要的引數就好了。

cmake 有乙個引數為 -d,後可以跟變數名和賦的值,如 cmake -d cmake_build_type=release 表示我們要編譯 release 版本。這裡由於我要額外編譯 contrib 模組,所以要告訴 cmake。最終這些東西會寫進去cmakecache.txt中。命令如下:

cmake -d cmake_build_type=release \

-dopencv_extra_modules_path=../opencv_contrib/modules \

-dcmake_install_prefix=/usr/local \

../opencv

知道了要編譯哪些東西,和編譯的配置,我們就可以執行編譯和安裝了,執行下面兩個命令,就開始慢慢等吧,我這裡不到十分鐘就好了,挺快的!編譯會輸出一堆紅紅綠綠的資訊和進度等,編譯完注意看最後的幾行,有沒有提示你出錯。第二條命令要root許可權,因為我們要把一些檔案拷貝進系統資料夾下面。

make

sudo make install

我們下來看看,編譯完以後,會有什麼變化。執行下面的命令:

pkg

-config--

cflags--

libs

opencv

於是會輸出一堆的 -i/usr/local/include/opencv -l/usr/local/lib -lopencv_text 等,這些都是我們可引用的 opencv 靜態庫路徑,熟悉 g++ 的同學知道這裡的不同引數之間的區別。有興趣的可以去深究。

我們來嘗試編譯乙個opencv檔案,如 ./opencv/samples/cpp/tutorial_code/introduction/display_image 下的 display_image.cpp 檔案,源**列出來吧:

#include 

#include

#include

#include

#include

using

namespace

std;

using

namespace cv;

int main(int argc, char **argv)

用下面的命令來編譯:

g++

display_image

.cpp-o

display_image

`pkg

-config--

cflags--

libs

opencv`

注意最右邊的符號 ` 不是引號,而是鍵盤上 1 左邊的那個。這是 shell 的語法,我就不多說了。

編譯沒有報錯的話,就可以執行試試看了

./dispaly_image ./fish.jpg
然後你的 fish.jpg 就會顯示在視窗中。

當然,有時候,我們想用 opencv 的 python 介面,那樣子開發更方便。在 ./opencv/samples/python2/ 資料夾下面,有很多的例子,沒事可以跑著玩玩。比如說:

python opt_flow.py
就可以執行乙個叫做光流演算法的程式,聽說可以檢測運動的物體,我也不懂是幹啥,但是覺得 demo 好炫,好厲害有木有! opencv 真是太強大了。

平常我們學習的時候,可以多看看這些例子,非常有助於我們學習**。官網的 tutorials + api reference ,加上這些例子,不比讀一本教程書來的簡單。實際上,我更喜歡前者。

python 有很好的文件機制,用 help 函式,直接在 terminal 裡,就可以輸出文件。 help的引數可以是函式名,也可以是變數。

ubuntu16 04下安裝opencv3 2版本

2 編譯安裝 進入到opencv的資料夾中,建立乙個build目錄,進行編譯 1 cd opencv 3.2.0 2mkdir build 3 cmake d cmake build type release d cmake install prefix usr local 4 make j4 5 ...

ubuntu16 04下安裝opencv3 2版本

本記錄為在vbox虛擬機器下已經安裝好ubuntu16.04版本linux系統。2 編譯安裝 進入到opencv的資料夾中,建立乙個build目錄,進行編譯 1 cd opencv 3.2.0 2mkdir build 3 cmake d cmake build type release d cma...

opencv3程式設計入門

今天進行了簡單的影象修補 影象修補.cpp 先對影象進行破壞,然後進行修補 include stdafx.h include include include includeusing namespace std using namespace cv define win name1 原始圖 defi...