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