Ubuntu上配置opencv的詳細步驟
- 前言:
- 關于VMware的使用
- 1.網速過慢
- 2.虛擬機配置好打不開
- Ubuntu的配置和安裝
- Ubuntu上配置vscode外加opencv
- 安裝cmake
- 配置opencv
- 配置vscode
- 下載vscode
- VScode配置
- 配置launch.json
- 配置tasks.json
- 配置c_cpp_properties.json
前言:
關于妙算,實驗室要用到大疆的妙算2代,但是由放假在家,妙算還沒有到手,所以就按照妙算里面的配置開始在虛擬機上配置編譯環境,看在虛擬機上用vscode寫代碼能不能直接遷徙到妙算上面,在經過多次嘗試,苦盡甘來,才有了這篇很菜但是得來不易的博客,
關于VMware的使用
在win10上跑Linux,肯定要用到虛擬機,虛擬機搭載平臺最好選擇VMware,不同版本的虛擬機的使用方法基本上都是一樣的,對于想要仿真模擬大疆妙算二代來說,在虛擬機上搭載的版本最好選擇ubuntu16.04及以下的版本,下載和安裝虛擬機的程序非常簡單建議CSDN上面什么都有,請務必要安裝好VMware tool,對以后的步驟是極其方便的,可以將主機的任何東西復制到虛擬機上面來,
關于安裝虛擬機的廢話不多說,以下是我在安裝程序中遇到的問題,希望可以有幫助,
1.網速過慢
解決辦法:網路配接器改為橋接模式可以有效提升網速,

2.虛擬機配置好打不開

3.在配置虛擬機時千萬不要配置好直接關閉VMware不然很可能造成資料丟失
Ubuntu的配置和安裝
Vmware上Ubuntu的配置可以參考link.,完全照搬就可以了,基本上所有功能一應俱全,
附上大疆妙算2的配置

Ubuntu上配置vscode外加opencv
首先,在Linux上自帶的火狐瀏覽器上下載自己需要的opencv版本,這里我用的版本時opencv3.4.2,大家也可以使用安裝好的VMware tool來直接將主機里面的opencv壓縮包復制到Ubuntu上也是直接可以使用的,
下載鏈接
link.

下載好的檔案放在home里面

然后在home界面用終端打開

解壓檔案
unzip opencv-3.4.2.zip

直接解壓也可以,
安裝cmake
我要用的是vscode來進行編譯,但是vscode只是一個文本編譯器而已,要是真正用的話還是得用cmake來進行編譯,首先我們來安裝cmake,終端輸入:
sudo apt-get install cmake
接下來會讓你輸入密碼,自己是看不見的,直接輸入就可以了,

安裝完成后我們來安裝依賴庫:
sudo apt-get install build-essential
sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-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
等到依賴庫安裝完后,我們就可以對cmake進行配置了
配置opencv
在你解壓的opencv里面新建一個build檔案夾,然后在build里面用終端打開

開始執行cmake
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..

出現這些東西就好了,在這里說一下這個Ubuntu的路徑,里面的/usr/local …用的是安裝路徑

大概是這樣,
等待cmake命令執行完成然后執行make
sudo make

這樣子配置到100%就大功告成,程序比較漫長,大家耐心等待,
sudo make install

sudo make install 執行完畢后OpenCV編譯程序就結束了,接下來就需要配置一些OpenCV的編譯環境首先將OpenCV的庫添加到路徑,從而可以讓系統找到
然后繼續下一步,用gedit打開/etc/ld.so.conf
在檔案中加上一行
/usr/loacal/lib
其中/user/loacal是opencv安裝路徑也就是makefile中指定的安裝路徑,用命令列打開gedit
sudo gedit /etc/ld.so.conf

如圖所示,有可能碰見waring警告,不要管,直接進行下一步,沒什么影響,
下一步:
sudo ldconfig,
修改bash.bashrc檔案
命令列:
sudo gedit /etc/bash.bashrc
在檔案末尾加入
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH

最后一步應用
source /etc/bash.bashrc
檢驗:
pkg-config opencv –modversion
出現版本號則視為成功

官方也有檢驗的方法:
cd opencv3
cd samples
cd cpp
cd example_cmake
cmake .
make
./opencv_example

出現hello opencv則成功,
配置vscode
下載vscode
可以直接在vscode官網上下載,直接安裝,也可以用命令列安裝
先安裝Ubuntu make
sudo add-apt-repository ppa:ubuntu-desktop/ubuntu-make
sudo apt-get update
sudo apt-get install ubuntu-make
安裝成功后安裝vscode
umake ide visual-studio-code

我用的Ubuntu16.04版本,會出現vscode安裝上但是沒有圖示的情況,只需要
dconf reset -f /org/compiz/ (重置Compiz)
setsid unity (重啟Unity)
即可,
VScode配置
1.下載中文插件

2.安裝c++

3.建立工程,vscode是從檔案里面讀取代碼的,所以新建一個檔案夾再進行讀取


先寫一個cpp
#include<iostream>
using namespace std;
int main()
{
cout<<"Hello World\n";
return 0;
}
保存Ctrl+S,新建檔案的時候記住要寫后綴(.cpp)
配置launch.json
點擊左側的Debug按鈕選擇添加配置(Add configuration),然后選擇C++(GDB/LLDB),然后選個Default,將自動生成launch.json檔案.

選第一個即可
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "(gdb) Launch",
"type": "cppdbg",
"request": "launch",
"program": "${workspaceRoot}/${fileBasenameNoExtension}.main.out",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceRoot}",
"environment": [],
"externalConsole": true,
"MIMode": "gdb",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
],
"preLaunchTask": "build"
}
]
}
直接復制粘貼過去就行了,不要進行改動,后面的配置也是一樣,不要有改動,
配置tasks.json
配置完成上一步后保存關閉launch,F5運行代碼

配置任務

選擇Configure Task,在備選框中選擇C/C++:cpp build active file選項,則新建一個task.json檔案
{
// See https://go.microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
"version": "2.0.0",
"tasks": [
{
"label": "build",
"type": "shell",
"command": "g++",
"args": [
"-g",
"-std=c++11",
"${file}",
"-o",
"${fileBasenameNoExtension}.main.out",
"-I", "/usr/local/include",
"-I", "/usr/local/include/opencv",
"-I", "/usr/local/include/opencv2",
"-L", "/usr/local/lib",
"-l", "opencv_core",
"-l", "opencv_imgproc",
"-l", "opencv_imgcodecs",
"-l", "opencv_video",
"-l", "opencv_ml",
"-l", "opencv_highgui",
"-l", "opencv_objdetect",
"-l", "opencv_flann",
"-l", "opencv_imgcodecs",
"-l", "opencv_photo",
"-l", "opencv_videoio"
],
"problemMatcher":{
"owner": "cpp",
"fileLocation":[
"relative",
"${workspaceFolder}"
],
"pattern":[
{
"regexp": "^([^\\\\s].*)\\\\((\\\\d+,\\\\d+)\\\\):\\\\s*(.*)$",
"file": 1,
"location": 2,
"message": 3
}
]
},
"group": {
"kind": "build",
"isDefault": true
}
}
]
}
配置c_cpp_properties.json
Ctrl+Shift+P
輸入C/C++
選擇C/C++:Edit Configurations(JSON)

{
"configurations": [
{
"name": "Linux",
"includePath": [
"${workspaceFolder}/**",
"/usr/include",
"/usr/local/include/**"
],
"defines": [
"_DEBUG",
"UNICODE",
"_UNICODE"
],
"compilerPath": "/usr/bin/cpp",
"cStandard": "c11",
"cppStandard": "c++11",
"intelliSenseMode": "gcc-x64"
}
],
"version": 4
}
關閉保存,最后進行測驗,不出意外的話,程序應該很順利的,
測驗代碼:
#include<opencv2/opencv.hpp>
using namespace cv;
int main()
{
Mat srcImage=imread("1.jpge");
imshow("Origin",srcImage);
waitKey(0);
return 0;
}
別忘了將圖片添加到檔案夾里面,


這樣子就算成功了,
第一次寫博客,非常菜,請大佬們多多指教,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/249836.html
標籤:其他
