Linux下Opencv的安装及配置使用

OpenCV是提供源码的,所以从这个角度来说,是不区分32或64位的。但是,OpenCV里面也会有一些已经编译好了的库或执行文件,那么这个是要区分32或64位的。

一、安装

1 安装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


2 安装OpenCV

从官网下载opencv并解压,cd命令进入opencv的目录(源码的目录)

mkdir build

cd build

cmake ..
sudo make
sudo make install


备注:

添加路径:

cmake -DOPENCV_EXTRA_MODULES_PATH=../opencv_contrib/modules -DEIGEN_INCLUDE_PATH=/usr/local/include/Eigen/


make 时error:

/Users/ajx/Downloads/opencv/opencv_contrib/modules/rgbd/src/odometry.cpp:41:10: fatal error: 'unsupported/Eigen/MatrixFunctions' file not found
#include <unsupported/Eigen/MatrixFunctions>

解决办法:

sudo apt-get install libeigen3-dev  //默认安装路径是:/usr/include/eigen3

sudo cp -r usr/include/eigen3/unsported  usr/local/include/

 

二、配置

1 将opencv的库加入到路径,从而让系统可以找到

  1. 第一步

    用vim打开/etc/ld.so.conf,注意要用sudo打开获得权限,不然无法修改,
    如:sudo vim /etc/ld.so.conf,在文件中加上一行 /usr/local/lib,/user/local是opencv安装路径 就是makefile中指定的安装路径
    加了之后的变为

  2. 第二步

    再运行sudo ldconfig,
    修改bash.bashrc文件,sudo vim /etc/bash.bashrc
    在文件末尾加入:
    PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
    export PKG_CONFIG_PATH
    加后的图:

  3. 第三步

然后source /etc/bash.bashrc


三、测试使用

#include <iostream>
#include <cstdio>
#include <opencv2/opencv.hpp>
#include <unistd.h>
using namespace std;
using namespace cv;


int main()
{
        VideoCapture cap; //定义视频对象 
        cap.open(0); //0为设备的ID号 
        Mat frame;

        cap >> frame;
        if(frame.data)
        {
                cout << "!0"<<endl;
                imshow("frame",frame);
                waitKey(500);//等待按下函数:参数如果写负数或者0。当显示图片后,按下任意键后程序退出。如果参数写为3000就是3秒后程序自动退出
        }
        //waitKey(30); //0.03s获取一帧

        imwrite("./1.jpg",frame);
        //cout <<hex<< frame <<endl;

        /*
           int c ;
           Mat img1 = imread("2.jpg");
           namedWindow("图像显示");
           while(1)
           {
           imshow("图像显示",img1);
           c = waitKey(0);
           imwrite("33.jpg",img1);
           if(c==27 || char(c)=='q' || char(c) == 'Q')
           break;
           }
         */
        return 0;
}
~                                                                                                                                                                    
~          

g++ mat.cpp -o Mat `pkg-config --cflags --libs opencv`

 


四、查看版本号

命令:pkg-config --modversion opencv

结果:2.4.10


五、资料查找

百度输入“opencv”出现下图,可以根据需要点击你需要的资料,比如使用说明书。


六、调用多个版本中指定的opencv版本

http://www.linuxdiyf.com/linux/21233.html (多个版本的管理)


解决方案:

现在讨论Ubuntu14.04下分别使用CMake和Makefile编译运行带Opencv程序的两种解决方案。


1.CMake下指定Opencv版本

关键文件:OpenCVConfig.cmake。在opencv编译好后,所在目录中一般会有一个叫OpenCVConfig.cmake的文件,这个文件中指定了CMake要去哪里找OpenCV,其.h文件在哪里等,比如其中一行:


方法:

注意,将其添加在project(MyProjectName)之前。

如CMakeLists.txt内容如下:
cmake_minimum_required(VERSION 2.8)
set(OpenCV_DIR "/home/ubuntu/src/opencv-3.1.0/build")
project( camera )


2.Makefile下指定Opencv版本

关键文件:opencv.pc 。在Makefile下,应该是可以在其中详细设定Opencv路径。

我们常常使用pkg-config --modversion 来查看指定库的版本,比如查看opencv版本pkg-config --modversion opencv。其实pkg-config显示的信息来自于这个库对应的.pc文件,比如安装了opencv后,我们可以在/usr/local/lib/pkgconfig/ 文件夹下找到opencv.pc或者../opencv2410/build/unix-install/opencv.pc


方法:

如果我在/usr/local/lib/pkgconfig文件夹目录下添加opencv-3.1.0.pc文件,是否就可以将版本指向opencv-3.1.0l了呢?答案是肯定的。


备注:

g++ detect.cpp ImageProcessClass.cpp CommonFunClass.cpp CameraProcess.cpp -o Detect `pkg-config opencv halcon --cflags --libs`


参考:https://blog.csdn.net/jay463261929/article/details/53580538 

       https://blog.csdn.net/cv_you/article/details/77341631

  • 6
    点赞
  • 48
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值