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++

妙算2

Ubuntu上配置vscode外加opencv

首先,在Linux上自帶的火狐瀏覽器上下載本身須要的opencv版本,這裏我用的版本時opencv3.4.2。你們也可使用安裝好的VMware tool來直接將主機裏面的opencv壓縮包複製到Ubuntu上也是直接可使用的。
下載連接
link.
GitHub
下載好的文件放在home裏面

而後在home界面用終端打開
終端打開
解壓文件







git

unzip opencv-3.4.2.zip

解壓
直接解壓也能夠。
github

安裝cmake

我要用的是vscode來進行編譯,可是vscode只是一個文本編譯器而已,要是真正用的話仍是得用cmake來進行編譯,首先咱們來安裝cmake。終端輸入:shell

sudo apt-get install cmake

接下來會讓你輸入密碼,本身是看不見的,直接輸入就能夠了。
安裝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裏面用終端打開
build
開始執行cmake

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

執行cmake
出現這些東西就行了,在這裏說一下這個Ubuntu的路徑,裏面的/usr/local …用的是安裝路徑
安裝路徑
大概是這樣。
等待cmake命令執行完成而後執行make



sudo make

執行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

gedit
如圖所示,有可能遇見waring警告,不要管。直接進行下一步,沒什麼影響。
下一步:

sudo ldconfig,

修改bash.bashrc文件
命令行:

sudo gedit /etc/bash.bashrc

在文件末尾加入

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

bash文件
最後一步應用

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

vscode安裝
我用的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;
}

別忘了將圖片添加到文件夾裏面。

這樣子就算成功了。 第一次寫博客,很是菜,請大佬們多多指教。

相關文章
相關標籤/搜索