Ubuntu上配置opencv的詳細步驟
前言:
關於妙算,實驗室要用到大疆的妙算2代,可是由放假在家,妙算尚未到手,因此就按照妙算裏面的配置開始在虛擬機上配置編譯環境,看在虛擬機上用vscode寫代碼能不能直接遷徙到妙算上面,在通過屢次嘗試,苦盡甘來。纔有了這篇很菜可是得來不易的博客。javascript
關於VMware的使用
在win10上跑Linux,確定要用到虛擬機,虛擬機搭載平臺最好選擇VMware,不一樣版本的虛擬機的使用方法基本上都是同樣的。對於想要仿真模擬大疆妙算二代來講,在虛擬機上搭載的版本最好選擇ubuntu16.04及如下的版本,下載和安裝虛擬機的過程很是簡單建議CSDN上面什麼都有。請務必要安裝好VMware tool,對之後的步驟是極其方便的,能夠將主機的任何東西複製到虛擬機上面來。
關於安裝虛擬機的廢話很少說,如下是我在安裝過程當中遇到的問題,但願能夠有幫助。
java
1.網速過慢
解決辦法:網絡適配器改成橋接模式能夠有效提高網速。
python
2.虛擬機配置好打不開
3.在配置虛擬機時千萬不要配置好直接關閉VMware否則極可能形成數據丟失
ios
Ubuntu的配置和安裝
Vmware上Ubuntu的配置能夠參考link.,徹底照搬就能夠了。基本上全部功能包羅萬象。
附上大疆妙算2的配置
c++
Ubuntu上配置vscode外加opencv
首先,在Linux上自帶的火狐瀏覽器上下載本身須要的opencv版本,這裏我用的版本時opencv3.4.2。你們也可使用安裝好的VMware tool來直接將主機裏面的opencv壓縮包複製到Ubuntu上也是直接可使用的。
下載連接
link.
下載好的文件放在home裏面
而後在home界面用終端打開
解壓文件
git
unzip opencv-3.4.2.zip
直接解壓也能夠。
github
安裝cmake
我要用的是vscode來進行編譯,可是vscode只是一個文本編譯器而已,要是真正用的話仍是得用cmake來進行編譯,首先咱們來安裝cmake。終端輸入:shell
sudo apt-get install cmake
接下來會讓你輸入密碼,本身是看不見的,直接輸入就能夠了。
安裝完成後咱們來安裝依賴庫:
json
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進行配置了ubuntu
配置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; }
別忘了將圖片添加到文件夾裏面。
這樣子就算成功了。 第一次寫博客,很是菜,請大佬們多多指教。