ubuntu下用eclipse编译opencv程序

ubuntu下用eclipse编译opencv程序(超级详细)

2015年04月14日 16:18:02

阅读数:1672

我是菜鸟,写的文档是傻瓜式操作,敬请指正。

系统:VMwareWorkstation里的虚拟机ubuntu16.04,64位系统。

1、安装openCV

1.1、下载openCV

      https://github.com/opencv/opencv/archive/2.4.11.zip

    这是官网的下载链接,你们可以自己去官网下载最新版的(以为我的链接可能失效。另外,下文的链接你们也可以去官网下载最新版)。下载后解压到任意一个文件夹(右击,提取到此处)。

1.2 、安装cmake

    下载链接:

    https://cmake.org/files/v3.8/cmake-3.8.0.tar.gz

    下载后解压,安装先看README文件进行安装。我的版本是直接在终端里运行:     ./bootstrap && make && make install

2、安装openCV (转载,原文

   

    进入解压后的OpenCV文件夹,并运行

    cmake .

    注意后面有一个点

在Linux下安装openCV 并将其整合到Eclipse当中

    ②.运行make

    ③.运行sudo make install

    ④配置环境变量

    运行

    sudo gedit /etc/ld.so.conf.d/opencv.conf(注:该文件为linux中的动态链接库的配置文件)

    在文件中添加

    /usr/local/lib

    并保存

在Linux下安装openCV 并将其整合到Eclipse当中

运行下面的命令来配置library:

sudo ldconfig(注:用上面的动态链接库配置文件来配置动态链接库)打开另一个文件

sudo gedit ~/.bashrc

在最后面添上:

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

export PKG_CONFIG_PATH

在Linux下安装openCV 并将其整合到Eclipse当中

在终端运行

sudo apt-get install libgtk2.0-dev
sudo apt-get install pkg-config

然后重启。

3、安装eclipse (部分转载,原文

3.1、安装java JDK

    下载地址:

    解压安装后,

1.下载jdk , 地址

    http://download.oracle.com/otn-pub/java/jdk/8u121-b13/e9e7ea248e2c4826b92b3f075a80e441/jdk-8u121-linux-x64.tar.gz

2.下载 eclipse for c++,地址

   http://www.eclipse.org/downloads/download.php?file=/technology/epp/downloads/release/luna/SR2/eclipse-cpp-luna-SR2-linux-gtk-x86_64.tar.gz

3.将jdk解压到 /opt/jvm/文件夹中

操作步骤:

sudo mkdir /opt/jvm

sudo tar zxvf jdk-8u77-linux-x64.tar.gz -C /opt/jvm

4.配置jdk的环境变量,打开 /etc/profile文件(sudo vim /etc/profile),在文件末尾添加下语句:

export JAVA_HOME=/opt/jvm/jdk1.8.0_77

export JRE_HOME=${JAVA_HOME}/jre

export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib

export PATH=${JAVA_HOME}/bin:$PATH

保存后退出。

使其立即生效:sudo source /etc/profile

查看是否安装成功:java -version  出现

说明jdk安装成功。


5.安装 eclipse  将其解压(建议不要解压到root的文件夹,因为容易使下面的快捷方式没有图标,~为你的路径,如果不修改,就是用户home路径)

sudo tar zxvf eclipse-jee-mars-2-linux-gtk-x86_64.tar.gz -C ~


6.创建eclipse桌面快捷方式图标。

cd 桌面

sudo touch eclipse.desktop

sudo vim eclipse.desktop

输入以下内容:(~为你的安装路径)

[Desktop Entry]
Encoding=UTF-8
Name=Eclipse
Comment=Eclipse
Exec=~eclipse/eclipse
Icon=~eclipse/icon.xpm
Terminal=false
StartupNotify=true
Type=Application
Categories=Application;Development;

 

保存。

执行:sudo chmod u+x eclipse.desktop 将其变为可执行文件.

在~/eclipse/文件夹中创建一个指向JRE路径的软链接。

打开 Eclipse

到此eclipse就全部安装完啦。

4、在eclipse里配置openCV

   4.1、检测摄像头

   在终端中输入cheese,打开cheese后看是否有摄像头采集的图像。如果有,则进入4.2,否则继续看。

   在VMware Workstation里选择 虚拟机->可移动设备 ,在里面吧摄像头切换到虚拟机里(有对号就是在虚拟机里),虚拟机里最好只能挂载一个摄像头(我有两个摄像头,一个笔记本摄像头,一个usb摄像头)。

   输入:cd /dev

              cat vi*

   确认只有一个video0,因为我门只想要一个摄像头。

   输入cheese,发现可以采集图像。我在用usb采集图像时,碰见图像直接卡住不懂,如下图:

  我的建议是,如果在上面只看到一个video0,那么这个问题就是电脑抽风了。我百度谷歌了好久都么用,重启电脑都没有用。最后关机,睡了一觉,第二天自己好了。

    4.2、写openCV程序(部分转载,原文

配置方法如下:

1,新建一个c++项目:new->project->c++project->Hello World C++ Project(toolchains:linux C++),然后一路next。

2,右键点击新建的项目,在项目属性的C++ Build->Settings,这里要对编译器参数进行设置。在GCC C++ Compiler->include的includepaths中新增一个/usr/local/include/opencv,需要注意这里的路径在Linux上安装opencv的include的路径,可以直接照搬(建议先自己去该路径下看看有没有东西)。

3,在GCC C++ Linker->Libraries的libraries中分别加入opencv_core, opencv_highgui, opencv_imgproc,opencv_ml(注意这个一次只能添加一个,默认的已经带-l了。建议去改下面的路径下看看,干脆把所有模块全添加了);并在下面的library search path一项中新增为/usr/local/lib,与第2步的注意事项相同。

如此三步,就完成了eclipse下配置opencv的步骤!步骤2和3的效果如下。

 测试用例:


//============================================================================
// Name        : opencvTest.cpp
// Author      : 
// Version     :
// Copyright   : Your copyright notice
// Description : Hello World in C++, Ansi-style
//============================================================================

#include <iostream>
#include <opencv2/opencv.hpp>
#include <opencv2/core/core.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/video/background_segm.hpp>

using namespace std;
using namespace cv;

int main()
{
    cout << "!!!Hello World!!!" << endl; // prints !!!Hello World!!!
    VideoCapture capture(0);

    while(1)
    {
        Mat frame;
        capture>>frame;
        imshow("读取视频",frame);
        waitKey(30);

    }
    return 0;
}

测试结果:

   

猜你喜欢

转载自blog.csdn.net/yz2010/article/details/81812405