ubuntu上opencv原始碼安裝

2022-09-12 14:06:37 字數 2513 閱讀 7434

徹底解除安裝原來版本的方法:

ubuntu版本16.04,opencv版本3.4.6,帶cuda原始碼安裝

參考:a)git clone

cd opencv

b)git checkout 33b765d7979fd8a6038026aa44f6ff1a9c082b7b

git checkout -b 3.4.6

2)檢查環境

檢視gcc版本:which gcc,gcc -v 我的是5.4.0

檢視cmake版本:cmake --version 我的是3.9.1

檢視是否安裝git:git --version

3)安裝環境

sudo apt-get install build-essential

sudo apt-get install cmake git libgtk2.0-dev pkg-config lib**codec-dev lib**format-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

4)原始碼編譯

a)準備

mkdir build

cd build

cmake-gui ..

(安裝cmake-gui,sudo apt-get install cmake-qt-gui)

b)選擇源檔案目錄,和輸出檔案目錄

c)配置 configure

配置cmake_build_type 值為release,

根據自己的情況,配置cmake_install_prefix和opencv_extra_modules_path(opencv_contrib的路徑),

勾選with_cuda,

d)生成 generate

點選generate生成配置檔案。

e)執行

在build目錄下,執行:

make

sudo make install

參考:5)環境變數配置

a)sudo gedit /etc/ld.so.conf.d/opencv.conf

將以下內容新增到最後:/usr/local/lib

sudo ldconfig

b)sudo gedit /etc/bash.bashrc

新增:pkg_config_path=$pkg_config_path:/usr/local/lib/pkgconfig

export pkg_config_path

執行source /etc/bash.bashrc

c)重啟

6)測試

pkg-config opencv --modversionpkg-config --cflags --libs opencv

測試**:

1)如果出現以下錯誤,則將

#if cuda_version >= 9000#include #else#include #endif

改為

如缺少nvcuvid.h

將其中的 nvcuvid.h, cuviddec.h copy 到/usr/local/cuda-10.0/include/

2)若出現以下問題,則將functional.hpp:50處的 #include "device_functions.h"改為 #include "cuda_runtime.h"

編譯和安裝

make -j12

sudo make install

修改環境變數

vim ~/.bashrc

新增如下內容,並source ~/.bashrc使馬上生效

export pkg_config_path="/usr/local/opencv3.4.6/lib/pkgconfig"

export ld_library_path="$ld_library_path:/usr/local/opencv3.4.6/lib"

檢視opencv版本

pkg-config --modversion opencv

檢視opencv安裝庫和包含路徑

pkg-config --cflags --libs opencv

ps:重點是配置環境變數

AbstractCollection原始碼分析

abstractcollection抽象類提供了collection的骨架實現,collection分析請看 這裡直接看它的 是如何實現的.public abstract iterator iterator 該方法沒有實現.public abstract int size 該方法沒有實現.publi...

ThreadPoolExecutor原始碼閱讀

執行緒池解決兩個問題 一是復用執行緒,減少建立銷毀執行緒帶來系統開銷 二是限定系統資源使用邊界,避免大量執行緒消耗盡系統記憶體 適用於互不依賴,執行時間短,不需要對執行緒控制操作的執行緒 新增任務時,1.若執行緒數量小於corepoolsize,則新增執行緒執行任務 2.若執行緒數量大於等於core...

OrangePi One Android 原始碼編譯

一 系統環境搭建參照 二 lichee原始碼編譯 1.檢視help build.sh h2.配置核心 cd linux 3.4 make arch arm menuconfig 進入配置頁面,上下移動列表,空格是選擇列表,左右移動選擇退出選項 3.首次編譯執行清除 在 lichee linux3.4...