当前位置: 首页 > 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无关,即环境搭建成功。

相关文章:

  • 如何配置Pycharm服务器并结合内网穿透工具实现远程开发
  • HTML 链接 图片引入
  • 表单生成器基于(form-create-designer+ant design vue)
  • UniApp+Vue智慧工地信息化管理云平台源码(支持多工地使用)
  • Golang 通道输入输出学习(同刚上手的小新手)
  • 01.16
  • 广告投放场景中ABtest分析的评价、优化和决策建议
  • vs2022配置OpenCV测试
  • 注意!不清楚这些,2024上半年软考别轻易尝试!
  • 【好书推荐-第四期】《Go专家编程(第2版)》华为资深技术专家力作,第1版评分9.4,适合Go程序员面试
  • 使用WAF防御网络上的隐蔽威胁之SQL注入攻击
  • Android项目架构怎么做
  • 大数据Doris(五十六):SQL函数之地理位置函数
  • WEB前端人机交互导论实验-实训9 JavaScript
  • 逸学Docker【java工程师基础】3.3Docker安装nacos
  • 【140天】尚学堂高淇Java300集视频精华笔记(86-87)
  • 【翻译】Mashape是如何管理15000个API和微服务的(三)
  • 77. Combinations
  • css系列之关于字体的事
  • gops —— Go 程序诊断分析工具
  • Java 实战开发之spring、logback配置及chrome开发神器(六)
  • Javascript弹出层-初探
  • k8s 面向应用开发者的基础命令
  • Mithril.js 入门介绍
  • react-core-image-upload 一款轻量级图片上传裁剪插件
  • SpiderData 2019年2月16日 DApp数据排行榜
  • XML已死 ?
  • 对JS继承的一点思考
  • 诡异!React stopPropagation失灵
  • 微信小程序:实现悬浮返回和分享按钮
  • 微信小程序开发问题汇总
  • 想使用 MongoDB ,你应该了解这8个方面!
  • 协程
  • mysql面试题分组并合并列
  • ​软考-高级-信息系统项目管理师教程 第四版【第19章-配置与变更管理-思维导图】​
  • #100天计划# 2013年9月29日
  • #我与Java虚拟机的故事#连载15:完整阅读的第一本技术书籍
  • $L^p$ 调和函数恒为零
  • (2022 CVPR) Unbiased Teacher v2
  • (arch)linux 转换文件编码格式
  • (delphi11最新学习资料) Object Pascal 学习笔记---第2章第五节(日期和时间)
  • (pojstep1.1.1)poj 1298(直叙式模拟)
  • (附源码)springboot家庭财务分析系统 毕业设计641323
  • (附源码)springboot建达集团公司平台 毕业设计 141538
  • (规划)24届春招和25届暑假实习路线准备规划
  • **python多态
  • *setTimeout实现text输入在用户停顿时才调用事件!*
  • .form文件_SSM框架文件上传篇
  • .Net Core 中间件验签
  • .Net Core与存储过程(一)
  • .Net Remoting(分离服务程序实现) - Part.3
  • .Net 访问电子邮箱-LumiSoft.Net,好用
  • .NET简谈设计模式之(单件模式)
  • @TableId注解详细介绍 mybaits 实体类主键注解
  • [ vulhub漏洞复现篇 ] Celery <4.0 Redis未授权访问+Pickle反序列化利用