博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
INSTALL OpenCV on Ubuntu20.04
阅读量:4137 次
发布时间:2019-05-25

本文共 3880 字,大约阅读时间需要 12 分钟。

INSTALL OpenCV 4.5.2 c++ on Ubuntu20.04

step1: Install dependencies

sudo apt-get install build-essential cmake pkg-config libgtk-3-devsudo apt install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev libxvidcore-dev libx264-devsudo apt install libjpeg-dev libpng-dev libtiff-dev gfortran openexr libatlas-base-dev

在安装完Anaconda后,在编译安装OpenCV时,遇到了libtiff.so libglib.so等库的问题,目前没有找到好的方法,那就先编译安装完OpenCV后,再安装Anaconda

step2:Download opencv source

Download link:

Download opencv-4.5.2.zip

step3:Build and install

unzip opencv-4.5.2.zipcd opencv-4.5.2mkdir buildcd buildcmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D OPENCV_GENERATE_PKGCONFIG=on ..makesudo make install

NOTE:

  1. 在opencv 4版本的CMakeLists.txt文件中,CMAKE_INSTALL_PREFIX默认为/usr/local,OPENCV_GENERATE_PKGCONFIG默认为off,如果不设置OPENCV_GENERATE_PKGCONFIG=on,则在/usr/local/lib中将找不到pkgconfig文件夹
  2. make 运行时间很长,需要耐心等待,如果运行break了,可重新运行make命令

Finished all command lines above, check that whether there is a file called opencv4.pc.

在这里插入图片描述

step4:Configure

配置pkg-config路径:

经过上面的步骤后,在/usr/local/lib/pkgconfig下生成了opencv4.pc文件,这个文件很重要,里面记录了OpenCV头文件、库文件的路經。需要进行如下配置:

sudo gedit /etc/bash.bashrc# add path PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfigexport PKG_CONFIG_PATH# updatesudo updatedb

or

gedit /etc/profile# add pathPKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfigexport PKG_CONFIG_PATH# updatesource /etc/profile# 重启电脑reboot

配置库路径:

/etc/ld.so.conf.d一般为空文件,进行如下配置:

sudo gedit /etc/ld.so.conf.d/opencv.conf # add path/usr/local/lib# updatesudo ldconfig

NOTE:一切有关” cannot open shared object file: No such file or directory “的问题基本都可以通过上面的方式来解决(除非是操作系统里确实没有包含该共享库(lib*.so.*文件)或者共享库版本不对)

Check the version of opencv:

pkg-config --modversion opencv4

step5:Test

如果摄像头正常,可以直接用opencv提供的样例测试:

cd opencv-4.5.2/samples/cpp/example_cmakemkdir buildcd buildcmake ..make./opencv_example

ps:没有摄像头时的效果如下

在这里插入图片描述

否则,在家目录下新建一个tmp文件夹,在其中下载任意png格式图片,命名为1.png.并在tmp文件夹构建

test.cpp

CMakeLists.txt

编写一个test.cpp文件:

#include
#include
using namespace std;using namespace cv;int main(void){Mat img = imread("~/tmp/1.png");if(img.data == nullptr){//nullptr是c++11新出现的空指针常量 cerr << "图片文件不存在" << endl; return 0;}else{ // cout << img << endl;//你会发现图片就是一个矩阵 imshow("1.png", img); waitKey(0);// 按任意键在0秒后退出窗口,不写这句话是不会显示出窗口的}return 0;}

构建CMakeLists.txt文件:

最简单的方法是,从opencv-4.5.2文件夹中直接复制一份过来稍作修改,复制的文件为opencv-4.5.2/samples/cpp/example_cmake/CMakeLists.txt

# cmake needs this linecmake_minimum_required(VERSION 3.1)# Enable C++11set(CMAKE_CXX_STANDARD 11)set(CMAKE_CXX_STANDARD_REQUIRED TRUE)# Define project nameproject(opencv_test_project)# Find OpenCV, you may need to set OpenCV_DIR variable# to the absolute path to the directory containing OpenCVConfig.cmake file# via the command line or GUIfind_package(OpenCV REQUIRED)# If the package has been found, several variables will# be set, you can find the full list with descriptions# in the OpenCVConfig.cmake file.# Print some message showing some of themmessage(STATUS "OpenCV library status:")message(STATUS "    config: ${OpenCV_DIR}")message(STATUS "    version: ${OpenCV_VERSION}")message(STATUS "    libraries: ${OpenCV_LIBS}")message(STATUS "    include path: ${OpenCV_INCLUDE_DIRS}")# Declare the executable target built from your sourcesadd_executable(opencv_test_project test.cpp)# Link your application with OpenCV librariestarget_link_libraries(opencv_test_project LINK_PRIVATE ${OpenCV_LIBS})

NOTE:cmake的知识可以参考:

Compile and run:

~/tmp目录下

mkdir buildcd buildcmake ..make./opencv_test_project

在这里插入图片描述

step6: Uninstall

进入opencv-4.5.2/build目录:

sudo make uninstall

INSTALL OpenCV python on Ubuntu20.04

安装OpenCV主要模块:

pip3 install opencv-python

安装opencv-contrib-python:

opencv-python中只是包含了opencv的主要模块,很多比较新的高级的算法、某些不免费的算法如siftsurf特征点算法没有包含进去,如果你想使用这些功能,需要卸载opencv-python,然后安装opencv-contrib-python

pip3 install opencv-contrib-python

NOTE:都是自动安装最新版本

参考博客:

官网:

转载地址:http://gvxvi.baihongyu.com/

你可能感兴趣的文章
TSN 2.车载 Ethernet AVB 通信协议
查看>>
TSN 3. Ethernet AVB 协议栈分析
查看>>
MongoDB在windows的安装和配置
查看>>
python sqlalchemy对oracle数据库的ORM反射
查看>>
linux网卡驱动
查看>>
linux安装jdk
查看>>
linux display 作用 http://blog.chinaunix.net/u2/76248/showart_1134999.html
查看>>
xmanager无法访问linux主机问题
查看>>
linux 安装tomcat
查看>>
linux安装mysql
查看>>
mysql error number 1130
查看>>
mysql 主从数据库设置
查看>>
mysql 导入导出操作
查看>>
java 调用
查看>>
CENTOS5和rhel5安装google chrome
查看>>
软件测试
查看>>
网店部署
查看>>
linux 防火墙设置
查看>>
mysql数据库mysqlhotcopy热备份的备份恢复方法
查看>>
mysqlhotcopy 解决Can't locate DBI.pm in @INC
查看>>