linux下opencv安装与使用

平台:树莓派3b

系统:raspberrypi 5.4.51

编译链版本:gcc 5.5.0 & g++ 5.5.0

opencv版本:4.1.0

 

1.下载opencv

下面是opencv的官网,我下载的是4.1.0版本。

https://opencv.org/releases/

2.安装依赖

如果不安装在运行应用程序时可能会报错误。

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

3.编译opencv

解压并创建一个编译目录:

tar xvf opencv-4.1.0.tar.gz
cd opencv-4.1.0
mkdir build

创建安装目录:

sudo mkdir /usr/local/opencv-4.1.0

使用cmake配置,这个过程可能要几分钟:

sudo cmake -D CMAKE_BUILD_TYPE=Release -D WITH_CUDA=ON -D OPENCV_GENERATE_PKGCONFIG=YES -D CMAKE_INSTALL_PREFIX=/usr/local/opencv-4.1.0 ..

然后编译安装,树莓派太慢了,至少编译了2小时才编译完,服务器上几分钟就编译完了:

sudo make -j4
sudo make install

4.配置环境

打开库路径文件:

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

在文件中加上opencv的安装位置:

/usr/local/opencv-4.1.0/lib

然后执行

​​​​​​​sudo ldconfig

 打开系统环境变量文件:

sudo vim /etc/bash.bashrc

在文件后添加:

PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/opencv-4.1.0/lib/pkgconfig
export PKG_CONFIG_PATH

然后执行,使用环境变量生效:

source /etc/bash.bashrc

5.检查安装是否成功

输入下面的指令,显示版本表示安装成功

pkg-config opencv --modversion

 如果显示

Package opencv was not found in the pkg-config search path.
Perhaps you should add the directory containing `opencv.pc'
to the PKG_CONFIG_PATH environment variable
No package 'opencv' found

 可以将lib/pkgconfig下的opencv4.pc改名为opencv.pc。如何没有pkgconfig目录,是因为cmake时没加-D OPENCV_GENERATE_PKGCONFIG=YES

6.运行示例

进入samples/cpp/example_cmake,修改makefile,添加-std=c++11支持,添加头文件和库文件路径。

CXX ?= g++

CXXFLAGS += -c -Wall $(shell pkg-config --cflags opencv) -std=c++11
LDFLAGS += $(shell pkg-config --libs --static opencv)

CXXFLAGS += -I/usr/local/opencv-4.1.0/liclude \
			-L/usr/local/opencv-4.1.0/lib

all: opencv_example

opencv_example: example.o; $(CXX) $< -o $@ $(LDFLAGS)

%.o: %.cpp; $(CXX) $< -o $@ $(CXXFLAGS)

clean: ; rm -f example.o opencv_example
make
./opencv_example

注意这个例子需要有摄像头接入,要有/dev/video0设备文件。

linux下opencv安装与使用_第1张图片

如果出现Gtk-WARNING **: cannot open display,注意你使用的终端工具是否支持X11-forwarding,用MobaXterm试试。

 

问题1:error: (-213:The function/feature is not implemented) This algorithm is patented and is excluded in this configuration; Set OPENCV_ENABLE_NONFREE CMake option and rebuild the library in function 'create'

解决方法:在cmake时加-D OPENCV_ENABLE_NONFREE

你可能感兴趣的:(音视频)