ubuntu16.04編譯安裝opencv3.4.6

来源:https://www.cnblogs.com/fighting25/archive/2019/04/11/10687564.html
-Advertisement-
Play Games

1、下載壓縮包:https://github.com/opencv/opencv,在Branch欄選擇3.4版本,clone下載 2、安裝cmake及依賴庫,打開終端,輸入以下命令: 3、解壓所下載的壓縮包,在包含有CmakeList.txt文件的目錄下右鍵打開終端: 新建文件夾build,並切換到 ...


1、下載壓縮包:https://github.com/opencv/opencv,在Branch欄選擇3.4版本,clone下載

2、安裝cmake及依賴庫,打開終端,輸入以下命令:

sudo apt-get install cmake 

  

sudo apt-get install build-essential libgtk2.0-dev libavcodec-dev libavformat-dev libjpeg.dev libtiff4.dev libswscale-dev libjasper-dev  

 3、解壓所下載的壓縮包,在包含有CmakeList.txt文件的目錄下右鍵打開終端:

新建文件夾build,並切換到build目錄下:

 

mkdir build
cd build  

4、 cmake一下

cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..

其中可能會有一個ippicv下載時間長或者下載失敗,可考慮手動下載:鏈接:https://pan.baidu.com/s/1gWpo1no0V4PlMMMxWfCFew 提取碼:kuox 

這個安裝包是ippicv_2019_lnx_intel64_general_20180723.tgz,若終端顯示下載其他版本的,自行百度下載。

下載後無需解壓,複製文件的絕對路徑(不包含文件名,如/home/xlzc/Download/),打開opencv-3.4/3rdparty/ippicv/ippicv.cmake文件,定位在47行,

替換自己的本地文件路徑,如下:

再次執行上一cmake命令,ok了,

5、之後執行make,編譯時間有些長:

sudo make

6、執行命令:

sudo make install

7、執行完畢後OpenCV編譯過程就結束了,接下來就需要配置一些OpenCV的編譯環境首先將OpenCV的庫添加到路徑,從而可以讓系統找到

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

執行此命令後打開的可能是一個空白的文件,不用管,只需要在文件末尾添加,之後保存。

/usr/local/lib  

 執行如下命令使得剛纔的配置路徑生效

sudo ldconfig

可能會有以下錯誤:(我安裝時未碰到)

 

sbin/ldconfig.real: /usr/lib/nvidia-375/libEGL.so.1 不是符號連接
/sbin/ldconfig.real: /usr/lib32/nvidia-375/libEGL.so.1 不是符號連接
出現這個錯誤可能是由於系統BUG所致

只需要分別輸入上面圖下部分的四行命令就可解決

sudo mv /usr/lib/nvidia-375/libEGL.so.1 /usr/lib/nvidia-375/libEGL.so.1.org 
sudo mv /usr/lib32/nvidia-375/libEGL.so.1 /usr/lib32/nvidia-375/libEGL.so.1.org 
sudo ln -s /usr/lib/nvidia-375/libEGL.so.375.39 /usr/lib/nvidia-375/libEGL.so.1 
sudo ln -s /usr/lib32/nvidia-375/libEGL.so.375.39 /usr/lib32/nvidia-375/libEGL.so.1

8、配置bash(類似於Windows環境變數)  

sudo gedit /etc/bash.bashrc  

在最末尾添加

PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig  
export PKG_CONFIG_PATH  

保存,執行如下命令使得配置生效

source /etc/bash.bashrc   

更新

sudo updatedb  

至此所有的配置都已經完成 

9、測試

cd到opencv-3.4.1/samples/cpp/example_cmake目錄下 我們可以看到這個目錄里官方已經給出了一個cmake的example我們可以拿來測試下 

按順序執行 

cmake .
make
./opencv_example

即可看到打開了攝像頭,在左上角有一個hello opencv 
即表示配置成功,無攝像頭也輸出hello opencv 

或者自己建立一個小工程測試,新建文件夾demo,包含文件CMakeList.txt和文件main.cpp

CMakeList.txt:

cmake_minimum_required(VERSION 2.8)

project(example_project)

find_package(OpenCV REQUIRED)

add_executable(example main.cpp)	

target_link_libraries(example ${OpenCV_LIBS})	

main.cpp

#include "opencv2/core.hpp"
#include "opencv2/imgproc.hpp"
#include "opencv2/highgui.hpp"
#include "opencv2/videoio.hpp"
#include <iostream>
 
using namespace cv;
using namespace std;
 
 
int main()
{
    cout << "Hello OpenCV " << CV_VERSION << endl;
    
    Mat myMat = imread("/home/xlzc/桌面/project/opencv_test/test2.jpg",1);
 
	// 顯示圖像
	imshow("Opencv Image", myMat);
 
	// 等待按鍵延時 ms
	waitKey(5000);
 
    return 0;
}  

在當前目錄下打開終端,依次運行以下命令

cmake .
make
./example

j即可顯示一張圖片  

參考轉載:https://blog.csdn.net/cocoaqin/article/details/78163171

 

 

 

  

 

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 1.下載https://www.elastic.co/downloads/logstash到/usr/local/src 2.解壓 3.創建配置文件 輸入 4.新建測試log文件 寫入測試數據:aa 5.打開kibana 新建index partner 查看 至此,簡單完成了日誌系統,生產中,可以通 ...
  • [TOC] 回顧你過去將近3年的學習經歷 1.當初你報考的時候,是真正喜歡電腦這個專業嗎? 是的,感覺電腦讓我著迷 2.你現在後悔選擇了這個專業嗎? 沒有 3.你認為你現在最喜歡的領域是什麼(可以是電腦的也可以是其它領域)? 我感覺喜愛電腦內的資料庫這一領域 總結你現在已經掌握的知識 1.你 ...
  • Do not let dream just be your dream. 背景:Linux伺服器文件上傳下載。 XShell+Xftp安裝包(解壓即用)百度網盤鏈接:https://pan.baidu.com/share/init?surl=M8L4ud2NUYcC9qaG_0XPKg 提取碼: t ...
  • 第一次發生這種狀況,是因為上一次關機時我直接斷電了(並非故意的,我用了deepin一個月出了好幾次關機後死機╮(╯▽╰)╭) 參考: 愛之墨色(完美解決)linux 開機進入initramfs無法開機 Jerry_SCY deepin系統啟動進入busybox界面 狀況:出現“(inittramfs ...
  • url重寫是指通過配置conf文件,以讓網站的url中達到某種狀態時則定向/跳轉到某個規則,比如常見的偽靜態、301重定向、瀏覽器定向等 rewrite 語法 在配置文件的server塊中寫,如: server { rewrite 規則 定向路徑 重寫類型; } 規則:可以是字元串或者正則來表示想匹 ...
  • 趁著這波比較閑的時候來劃一波水,想起自己那都快生會的騰訊雲伺服器 到現在還不能通過版本控制系統上傳文件,於是趁這波功夫在伺服器上安裝個svn來管理代碼。 首先就簡單的介紹一波 svn : 首先svn不同於GIT它是集中式的,即只有一條主線並沒有分支,Subversion(SVN) 是一個開源的版本控 ...
  • Linux 中主要有五種IO模式:阻塞IO, 非阻塞IO, IO 多路復用,信號驅動IO和非同步IO; 如果從同步非同步,阻塞非阻塞角度來看,又可以分為:同步阻塞IO, 同步非阻塞IO,非同步阻塞IO和非同步非阻塞IO; 每種IO模型,都有自己的使用模式,他們對於特定的應用程式都有自己的優點:其簡單分佈如 ...
  • FIO是測試IOPS的非常好的工具,用來對硬體進行壓力測試和驗證。磁碟IO是檢查磁碟性能的重要指標,可以按照負載情況分成照順序讀寫,隨機讀寫兩大類。 目前主流的第三方IO測試工具有fio、iometer 和 Orion,這三種工具各有千秋,在linux 下也可以使用dd 進行簡單的磁碟(文件系統)測 ...
一周排行
    -Advertisement-
    Play Games
  • 前言 本文介紹一款使用 C# 與 WPF 開發的音頻播放器,其界面簡潔大方,操作體驗流暢。該播放器支持多種音頻格式(如 MP4、WMA、OGG、FLAC 等),並具備標記、實時歌詞顯示等功能。 另外,還支持換膚及多語言(中英文)切換。核心音頻處理採用 FFmpeg 組件,獲得了廣泛認可,目前 Git ...
  • OAuth2.0授權驗證-gitee授權碼模式 本文主要介紹如何筆者自己是如何使用gitee提供的OAuth2.0協議完成授權驗證並登錄到自己的系統,完整模式如圖 1、創建應用 打開gitee個人中心->第三方應用->創建應用 創建應用後在我的應用界面,查看已創建應用的Client ID和Clien ...
  • 解決了這個問題:《winForm下,fastReport.net 從.net framework 升級到.net5遇到的錯誤“Operation is not supported on this platform.”》 本文內容轉載自:https://www.fcnsoft.com/Home/Sho ...
  • 國內文章 WPF 從裸 Win 32 的 WM_Pointer 消息獲取觸摸點繪製筆跡 https://www.cnblogs.com/lindexi/p/18390983 本文將告訴大家如何在 WPF 裡面,接收裸 Win 32 的 WM_Pointer 消息,從消息裡面獲取觸摸點信息,使用觸摸點 ...
  • 前言 給大家推薦一個專為新零售快消行業打造了一套高效的進銷存管理系統。 系統不僅具備強大的庫存管理功能,還集成了高性能的輕量級 POS 解決方案,確保頁面載入速度極快,提供良好的用戶體驗。 項目介紹 Dorisoy.POS 是一款基於 .NET 7 和 Angular 4 開發的新零售快消進銷存管理 ...
  • ABP CLI常用的代碼分享 一、確保環境配置正確 安裝.NET CLI: ABP CLI是基於.NET Core或.NET 5/6/7等更高版本構建的,因此首先需要在你的開發環境中安裝.NET CLI。這可以通過訪問Microsoft官網下載並安裝相應版本的.NET SDK來實現。 安裝ABP ...
  • 問題 問題是這樣的:第三方的webapi,需要先調用登陸介面獲取Cookie,訪問其它介面時攜帶Cookie信息。 但使用HttpClient類調用登陸介面,返回的Headers中沒有找到Cookie信息。 分析 首先,使用Postman測試該登陸介面,正常返回Cookie信息,說明是HttpCli ...
  • 國內文章 關於.NET在中國為什麼工資低的分析 https://www.cnblogs.com/thinkingmore/p/18406244 .NET在中國開發者的薪資偏低,主要因市場需求、技術棧選擇和企業文化等因素所致。歷史上,.NET曾因微軟的閉源策略發展受限,儘管後來推出了跨平臺的.NET ...
  • 在WPF開發應用中,動畫不僅可以引起用戶的註意與興趣,而且還使軟體更加便於使用。前面幾篇文章講解了畫筆(Brush),形狀(Shape),幾何圖形(Geometry),變換(Transform)等相關內容,今天繼續講解動畫相關內容和知識點,僅供學習分享使用,如有不足之處,還請指正。 ...
  • 什麼是委托? 委托可以說是把一個方法代入另一個方法執行,相當於指向函數的指針;事件就相當於保存委托的數組; 1.實例化委托的方式: 方式1:通過new創建實例: public delegate void ShowDelegate(); 或者 public delegate string ShowDe ...