Ubuntu编译opencv4.3.0

文章目录

  • 安装cmake
    • 依赖openssl
    • 安装
  • 编译opencv3.4.10
  • 测试在eclipse中使用opencv
  • 参考链接

安装cmake

依赖openssl

sudo apt-get install libssl-dev

安装

解压进入cmake安装目录,执行

./configure
make
make install

Ubuntu编译opencv4.3.0_第1张图片

编译opencv3.4.10

下载opencv3.4.10,下载地址:https://opencv.org/releases/

安装qt

sudo apt-get install libqt4-dev

在用apt-get安装软件包的时候遇到E: Sub-process /usr/bin/dpkg returned an error code (1)问题,请参考:
解决apt-get安装中的returned an error code

unzip解压opencv源代码

mkdir build
cd build
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D WITH_TBB=ON -D BUILD_NEW_PYTHON_SUPPORT=ON -D WITH_V4L=ON -D WITH_OPENGL=ON ..

使用qt的配置文件

mkdir build
cd build
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D WITH_TBB=ON -D BUILD_NEW_PYTHON_SUPPORT=ON -D WITH_V4L=ON -D WITH_OPENGL=ON WITH_QT=ON ..

不使用opencl的版本

cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D WITH_TBB=ON -D BUILD_NEW_PYTHON_SUPPORT=ON -D WITH_V4L=ON -D WITH_OPENGL=ON -DWITH_OPENCL=OFF -DWITH_OPENCL_SVM=OFF ..

cmake的时候可能会遇到,下载IPPICV

IPPICV: Download: ippicv_2020_lnx_intel64_20191018_general.tgz

如果没有,那么请参考如下:
源码编译opencv卡在IPPICV: Download: ippicv_2017u3_lnx_intel64_general_20170822.tgz解决办法

我是把联网关掉,就不需要下载IPPICV了

需要确定g++的版本为4.8或者以上

先把gcc和g++的版本更改为4.8

sudo mv gcc gcc.bak
sudo ln -s gcc-4.8 gcc
gcc -v
sudo mv g++ g++.bak
sudo ln -s g++-4.8 g++
g++ -v

编译完成后,换到gcc4.4的版本(gcc4.4对把ffmpeg.c变为ffmpeg.cpp十分重要)

sudo apt-get install gcc-4.4 g++-4.4 g++-4.4-multilib
sudo mv gcc gcc.bak
sudo ln -s gcc-4.4 gcc
sudo mv g++ g++.bak
sudo ln -s g++-4.4 g++

如果需要使用xfeatures2d等opencv_contrib扩展,则需要从这里下载(注意对应版本,tag要留意一下):https://github.com/opencv/opencv_contrib/tree/3.4.10

然后解压目录到opencv主目录中

Ubuntu编译opencv4.3.0_第2张图片

这时候使用的cmake命令如下

mkdir build
cd build
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D WITH_TBB=ON -D BUILD_NEW_PYTHON_SUPPORT=ON -D WITH_V4L=OFF -D WITH_OPENGL=ON -DOPENCV_EXTRA_MODULES_PATH=../opencv_contrib-3.4.10/modules -DOPENCV_ENABLE_NONFREE=ON ..

中间需要下载对应模块

Ubuntu编译opencv4.3.0_第3张图片

测试在eclipse中使用opencv

当然如果只是测试在eclipse中使用opencv,则直接可以安装包

sudo apt-get install libopencv-dev

这是用apt安装后so存放的位置

Ubuntu编译opencv4.3.0_第4张图片

include paths中填入如下内容

/usr/include/
/usr/include/opencv
/usr/include/opencv2

Ubuntu编译opencv4.3.0_第5张图片

库搜索路径如下

/usr/lib/x86_64-linux-gnu

Ubuntu编译opencv4.3.0_第6张图片

需要引入的库为

opencv_imgproc
opencv_highgui
opencv_core

如果出现找不到库,则在/etc/ld.so.conf.d目录下新建一个opencv.conf文件并将其内容写入刚才找到的库的路径

cd /etc/ld.so.conf.d
sudo vi opencv.conf

在opencv.conf中添加如下内容

/usr/local/lib
/home/zeng/ffmpeg/opencv-3.4.10/build/lib

保存后执行

sudo ldconfig

运行一个测试程序

#include "use_opencv.h"
#include 
using namespace std;
#include 
#include 
using namespace cv;//使用命名空间

void test_opencv(char* img_path)
{
	cout << "hello opencv2222." << endl;

	Mat img = imread(img_path, 0); // 读取图片 这里文件地址写成你想打开的文件的地址或者放在执行目录里就不用写路径直接使用文件名字
	imshow("load image",img);//在窗口中打开图片
	waitKey(100000);//等待时间,这里等待时间最好别填零,要不打开的窗口秒退
}


int main()
{
	char *img_path = "/home/zeng/ffmpeg/ffmpeg-4.2.2/1.jpg";
	test_opencv(img_path);

	return 0;
}

看到的结果如下

Ubuntu编译opencv4.3.0_第7张图片

参考链接

  • 编译cmake的时候出错Could not find OpenSSL
  • pkg: error processing package XXX (–configure) 解决方法 (ubuntu右上角红色警告)
  • Ubunut16.04 安装 g++ gcc 降级
  • Ubuntu 16.04: How to install OpenCV
  • Ubuntu通过apt-get安装OpenCV
  • ubuntu16.04+qt5+opencv3.2.0编译与安装
  • OpenCV 显示一幅图片
  • opencv 访问彩色图片像素(指针方法)
  • OpenCV3.4.5 安装contrib模块

你可能感兴趣的:(Linux)