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
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...