Ubuntu14.04 OpenCV编译安装与测试

    xiaoxiao2021-12-14  23

    1简介

    OpenCV,英文全称Open Source Computer Vision Library。OpenCV是一个基于(开源)发行的跨平台计算机视觉库,可以运行在Linux、Windows和Mac OS操作系统上。它轻量级而且高效——由一系列 C 函数和少量 C++ 类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。

    官方主页:http://opencv.org/

    2安装包

    下载链接:http://opencv.org/downloads.html

    安装包:opencv-2.4.11.zip

    请不要下载opencv2.3.1, 会报ffmpeg的错误。另外, 最新版的opencv3 和opencv2 架构不同。 如果大家用opencv2用的顺手, 先不要升级opencv3了。

    3安装

    安装编译opencv的依赖包

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

    无法显示摄像头采集到的视频,可能是因为没有安装libgtk2.0-dev和pkg-config

    opencv中与图像显示相关的函数是基于libgtk2.0-dev,pkg-config用于组织编译后的opencv头文件与库文件等信息。

    配置opencv,在这里使用cmake-gui进行配置,使用cmake直接配置会报错,后面会介绍。

     

    OpenCV 2.2以后版本需要使用Cmake生成makefile文件,因此需要先安装cmake。

    在终端输入

    $cmake-gui

    点击"configure",选择"Unix Makefiles","Use defaultnative compilers"。因为这里只是编译普通到PC版OpenCV。出现下面的界面,更改设置,把WITH-CUDA和BUILD_opencv_gpu选项去掉打钩,然后依次点Configure和Generate按钮生成Configure文件。(如果设置好之后 generate是灰色的 在点一次configure)

    再点击"Generate",即生成Makefile。

    进入"/root/jiangyf/opencv/opencv-2.4.13/build"目录,输入

    $make

    $ sudo  make install

    到此,OpenCV编译完成。

    4环境变量

    安装成功后还需要设置opencv的环境变量

    打开文件

    sudo gedit /etc/profile ##个人比较喜欢把环境变量放在/etc/profile里面,'~/.bashrc'一样

    在文件最后添加

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

    执行下列命令, 使环境变量立即生效

    source /etc/profile

     

    5lib库路径

    打开文件

    sudo gedit /etc/ld.so.conf.d/opencv.conf

    一般是新建文件,opencv的库一般安装在’/usr/local/lib’文件夹下,在文件内添加

    /usr/local/lib 

    执行下列命令使之立刻生效

    sudo ldconfig

    经过上面的流程,这样就可以在eclipse里或者qtcreator里用opencv了。 不过要配置号相应的路径和lib文件。

    6示例代码

    对opencv的sample进行编译并运行

    cd /root/jiangyf/opencv/opencv-2.4.13/samples/c

    ./build_all.sh

    ./facedetect --cascade="/usr/local/share/OpenCV/haarcascades/haarcascade_frontalface_alt.xml" --scale=1.5 lena.jpg

    7命令行编译与执行代码

    #include<iostream> #include"opencv2/opencv.hpp" usingnamespace std; usingnamespace cv; int main() { // Capturing multiple AVT cameras can bedone by simply initiating // two VideoCaptures after eachother. VideoCapture camera1(0); Mat frame1; for(;;){ camera1 >> frame1; imshow("camera 1 frame",frame1); int key = waitKey(10); if(key == 27){ break; } } return 0; }

    在终端输入

    //直接编译链接 gcc `pkg-config --cflags opencv` -o camera camera.c `pkg-config --libs opencv` 或gcc camera.c -o camera `pkg-config --cflags --libs opencv` //先编译再链接: gcc `pkg-config --cflags opencv` -c camera.c gcc `pkg-config --libs opencv` -o camera camera.o 运行: ./camera

    转载请注明原文地址: https://ju.6miu.com/read-968660.html

    最新回复(0)