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;
}

别忘了将图片添加到文件夹里面。

这样子就算成功了。 第一次写博客,很是菜,请大佬们多多指教。

相关文章
相关标签/搜索