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)/*

 

posted on 2018-11-26 10:03  平凡的编程者  阅读(1064)  评论(0编辑  收藏  举报