当前位置: 首页 > news >正文

Ubuntu搭建OpenCV环境(C++)

Ubuntu搭建OpenCV环境(C++)

文章目录

  • Ubuntu搭建OpenCV环境(C++)
    • 一、环境介绍
    • 二、依赖安装
    • 三、安装包下载
    • 四、opencv安装
    • 五、测试

一、环境介绍

虚拟机 :VMware 15.5

OS : Ubuntu 20.04

opencv 版本 : 4.9.0

操作系统安装本文不再赘述,重点介绍opencv如何搭建,并提供验证方式。

二、依赖安装

sudo apt-get install build-essential 
sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev

三、安装包下载

1.Opencv安装包下载,在这里面选择你想下载的opencv版本。这里以Opencv-4.9.0为例,跳转到GitHub后clone即可。

2.opencv_contrib下载(注意这里要与你上面下载的opencv版本一致)

3.两个都下载好以后,把opencv_contrib放到解压后opencv文件夹里面。

四、opencv安装

cd opencv
mkdir build
cd buildsudo cmake -D CMAKE_BUILD_TYPE=Release -D OPENCV_GENERATE_PKGCONFIG=YES -D CMAKE_INSTALL_PREFIX=/usr/local/opencv4 ..sudo make -j4
sudo make install

配置lib

sudo vim /etc/ld.so.conf
添加一行
/usr/local/lib
保存退出
sudo ldconfig
sudo vim /etc/bash.bashrc 
文件尾添加两行
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH
保存退出
source /etc/bash.bashrc

安装完毕

通过执行pkg-config opencv --modversion查看安装的opencv版本信息,如果报错not found尝试以下方案:

cd /usr/local/lib
sudo mkdir pkgconfig          // 如已有pkgconfig目录跳过该条
cd pkgconfig
sudo vim opencv.pc
添加以下信息
prefix=/usr/local
exec_prefix=${prefix}
includedir=${prefix}/include
libdir=${exec_prefix}/libName: opencv
Description: The opencv library
Version:4.2.0
Cflags: -I${includedir}/opencv4
Libs: -L${libdir} -lopencv_shape -lopencv_stitching -lopencv_objdetect -lopencv_superres -lopencv_videostab -lopencv_calib3d -lopencv_features2d -lopencv_highgui -lopencv_videoio -lopencv_imgcodecs -lopencv_video -lopencv_photo -lopencv_ml -lopencv_imgproc -lopencv_flann  -lopencv_core
保存退出、最后添加环境变量
export  PKG_CONFIG_PATH=/usr/local/lib/pkgconfig

五、测试

opencv/samples/cpp/example_cmake目录下:

cmake .
make
./opencv_example

这时通过调用opencv库来打开摄像头,如VMware中打开摄像头没有图像,只有OpenCV字体标识是因为虚拟机未连接到物理机的摄像头设备,或物理机本身没有摄像头硬件设备,与OpenCV无关,即环境搭建成功。

http://www.lryc.cn/news/281680.html

相关文章:

  • R语言【paleobioDB】——pbdb_orig_ext():绘制随着时间变化而出现的新类群
  • Vue模板的理解和使用
  • mysql group_concat函数使用
  • 并发编程之三大特性及JMM内存模型
  • centos系统设置runlevel为5
  • 关于群晖ARPL界面能出现ip但是使用Synology Assistant搜索不到ip问题 及解决方法
  • mysql Linux系统云服务器配置远程访问
  • 使用WAF防御网络上的隐蔽威胁之SQL注入攻击
  • 【书生·浦语】大模型实战营——第五次课程作业
  • Unity | 渡鸦避难所-7 | 攻击碰撞检测
  • Linux Mii management/mdio子系统分析之一 总体概述
  • C语言:自定义类型——联合和枚举
  • uniapp微信小程序投票系统实战 (SpringBoot2+vue3.2+element plus ) -用户投票实现
  • 如何实现一个两栏布局,右侧自适应?三栏布局中间自适应?
  • 004 Golang-channel-practice 左右括号匹配
  • MS2351M/MS2351D:RF 检测器/控制器
  • vue中使用js-doc
  • Hive知识点
  • android自启动
  • cookie、Web Storage
  • 【rk3568】01-环境搭建
  • 编程笔记 html5cssjs 036 CSS概述
  • Vue入门七(Vuex的使用|Vue-router|LocalStorage与SessionStorage和cookie的使用)
  • 多级缓存架构(三)OpenResty Lua缓存
  • 写点东西《Docker入门(上)》
  • chatgpt实用技巧之二反问式提示
  • 【数据结构和算法】奇偶链表
  • MVC框架
  • 学习笔记之——3D Gaussian Splatting及其在SLAM与自动驾驶上的应用调研
  • Github Copilot 的使用方法和快捷键