zoukankan      html  css  js  c++  java
  • Ubuntu16.0.4安装OpenCV3.4.2

    (1)到官网下载opencv3.4.2,链接:https://opencv.org/releases.html

    (2)下载opencv_contrib,链接:https://github.com/opencv/opencv_contrib/releases

    (2)将两个压缩包解压,进入opencv3.4.2目录创建build文件夹备用,创建install目录备用

      mkdir build

      mkdir install

    (3)安装依赖库

      sudo apt-get install build-essential cmake cmake-qt-gui git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev

      sudo apt-get install libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev

      sudo apt-get install libavcodec-dev libavformat-dev libv4l-dev liblapacke-dev libxvidcore-dev libx264-dev libatlas-base-dev gfortran ffmpeg

      

    (4)打开cmake:cmake-gui

    (5)点击Browse Source选择opencv源码所在目录

    (6)点击Browse Build选择之前创建的build目录。

    (6)点击Congiure按照默认选择即可,点击finsh

    (8)在Search查找extra,找到OPENCV_EXTRA_MODULES_PATH设置目录为contrib的modules目录

     (8)查找INSTALL_PREFIX修改安装目录,选择我们创建的install目录。

    不要直接安装到/usr/local目录下,有一些第三方库会依赖opencv,而它们依赖的版本可能是不一样的,这意味着你可能在一个系统里面安装多个版本的opencv,为了避免冲突,不要直接安装在/usr/local目录下。

    (9)再次点击Configure开始配置,直到显示Configuring done,然后再次点击Configure直到所有选项没有红色状态。

    (10)点击Generate.

     (11)关闭cmake进入build目录。

     输入:make -j4,然后等待编译。

    (12)编译完成输入:make install,到此安装opencv3.4.2结束。

    (13)将头文件和库文件放到/usr目录下。

      cd ~/Download/opencv3.4.2/install

      mv include /usr/include/opencv3.4.2

      mv lib /usr/lib/openc3.4.2

      mv bin /usr/bin/opencv3.4.2

    然后设置一下库文件目录的路径。

      vim ~/.bashrc

    在最末尾添加:

    export LD_LIBRARY_PATH=/usr/lib/opencv3.4.2:$LD_LIBRARY_PATH

    然后保存退出,重启终端生效。

    (14)写一个测试demo测试一下。

    #include <iostream>
    #include <opencv2/opencv.hpp>
    #include <opencv2/highgui.hpp>
    #include <iostream>
    using namespace std;
    using namespace cv;
    int main() {
        VideoCapture cap;
        cap.open(0);  //打开摄像头
        if(!cap.isOpened())
        {
            cout<<"open camera error!"<<endl;
            return -1;
        }
        Mat frame;
        while(1)
        {
            cap>>frame;  //取当前摄像头帧画面
            if(frame.empty())
            {
                cout<<"frame error!"<<endl;
                return -2;
            }
            imshow("cameraView",frame);
    		if(waitKey(10)==27)
    			break;
        }
        cap.release();  //释放摄像头
    }
    

     (15)Makefile

    CXX		  := g++
    CXX_FLAGS := -Wall -Wextra -std=c++11 -ggdb
    
    BIN		:= .
    SRC		:= .
    INCLUDE	:= /usr/include/opencv3.4.2
    LIB		:= /usr/lib/opencv3.4.2
    
    LIBRARIES	:=-lopencv_imgcodecs -lopencv_highgui -lopencv_core 
    			-lopencv_video -lopencv_videoio
    EXECUTABLE	:= camera
    
    
    all: $(BIN)/$(EXECUTABLE)
    
    run: clean all
    	clear
    	./$(BIN)/$(EXECUTABLE)
    
    $(BIN)/$(EXECUTABLE): $(SRC)/*.cpp
    	$(CXX) $(CXX_FLAGS) -I$(INCLUDE) -L$(LIB) $^ -o $@ $(LIBRARIES)
    
    clean:
    	-rm $(BIN)/*
    
  • 相关阅读:
    linux命令: mount
    梳理一下uboot是如何从nandflash挂载文件系统的
    MDK的优化应用
    面向对象设计思想:面向对象设计的基本原则
    问题
    nodejs安装不了和npm安装不了的解决方法
    []: secureCRT连接ubuntu问题- The remote system refused the connection
    字符设备驱动[深入]:linux cdev详解
    使用MDK将STM32的标准库编译成lib使用
    liteos任务(二)
  • 原文地址:https://www.cnblogs.com/WushiShengFei/p/10002502.html
Copyright © 2011-2022 走看看