ubuntu22.04@laptop OpenCV安装

2024-02-06 19:28

本文主要是介绍ubuntu22.04@laptop OpenCV安装,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

ubuntu22.04@laptop OpenCV安装

  • 1. 源由
  • 2. 验证环境
  • 3. OpenCV安装
    • 3.1 系统升级
    • 3.2 Python安装
    • 3.3 OpenCV C/C++环境安装
    • 3.4 OpenCV Python虚拟环境安装
    • 3.5 OpenCV检查
  • 4. 总结
  • 5. 参考资料
  • 6. 补充 - python环境

1. 源由

最近,打算在Companion Computer上一些目标识别的算法,最流行、最基础的可能就是OpenCV了。

首先,将算法在x86的laptop上跑起来,将目标识别程序运行起来,基本的功能实现。

然后,基于Linux系统移植到Companion Computer上就会简单很多。

2. 验证环境

准备以下验证环境:

  • x86-64bit laptop x 1
  • ubuntu 22.04 jammy
  • OpenCV 4.9.0 (latest release)
$ lsb_release  -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 22.04.3 LTS
Release:        22.04
Codename:       jammy$ tree -L 1
.
├── opencv
├── opencv_contrib
├── opencv-4.9.0-py3
├── opencv-4.9.0.zip
└── opencv_contrib-4.9.0.zip

3. OpenCV安装

目前,最新的OpenCV发行版本: 4.9.0

  • opencv-4.9.0
  • opencv_contrib-4.9.0
### Define OpenCV Version to install 
cvVersion="4.9.0"### Save current working directory
SNAPDRAGONFLY_CURRENT_DIR_PATH=$(pwd)SNAPDRAGONFLY_CURRENT_OPENCV=opencv
SNAPDRAGONFLY_CURRENT_OPENCV_CONTRIB=opencv_contribSNAPDRAGONFLY_CURRENT_OPENCV_ZIP=opencv-$cvVersion.zip
SNAPDRAGONFLY_CURRENT_OPENCV_CONTRIB_ZIP=opencv_contrib-$cvVersion.zip

3.1 系统升级

除了必备的组件外,更新了一些常用的工具,比如:tree, aptitude 。

sudo add-apt-repository "deb http://security.ubuntu.com/ubuntu jammy-security main" -y
sudo apt -y update
sudo apt -y upgrade### Install dependencies
sudo apt -y install unzip locate tree aptitude
sudo apt -y install build-essential checkinstall cmake pkg-config yasm
sudo apt -y install git gfortran
sudo apt -y install libjpeg8-dev libpng-dev libjpeg-dev libgtk-3-dev 
sudo apt -y install software-properties-common
sudo apt -y install libtiff-dev
sudo apt -y install libavcodec-dev libavformat-dev libswscale-dev libdc1394-dev
sudo apt -y install libxine2-dev
sudo apt -y install libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev
sudo apt -y install libgtk2.0-dev libtbb-dev libtbb2
sudo apt -y install openexr libopenexr-dev python3-numpy### qt5-default dependencies
sudo apt -y install libatlas-base-dev
sudo apt -y install libfaac-dev libmp3lame-dev libtheora-dev
sudo apt -y install libvorbis-dev libxvidcore-dev
sudo apt -y install libopencore-amrnb-dev libopencore-amrwb-dev libavro-dev
sudo apt -y install x264 libx264-dev v4l-utils
sudo apt -y install qtcreator qtbase5-dev qt5-qmake cmake### Optional dependencies
sudo apt -y install libprotobuf-dev protobuf-compiler
sudo apt -y install libgoogle-glog-dev libgflags-dev
sudo apt -y install libgphoto2-dev libeigen3-dev libhdf5-dev doxygen### Special dependencies
sudo apt -y install libv4l-dev
cd /usr/include/linux
sudo ln -s -f ../libv4l1-videodev.h videodev.h

注:本次系统采用的Ubuntu 22.04.3 LTS,所以使用了jammy-security源,请大家根据实际情况调整。

3.2 Python安装

使用Python虚拟环境,方便切换(笔者这里也有一些本地环境,为了避免相互干扰,虚拟Python环境会更好些)。

sudo apt -y install python3-dev python3-pip
sudo apt -y install python3-testresources
sudo apt -y install python3.10-venv### create virtual environment
python3 -m venv opencv-"$cvVersion"-py3
echo "# Virtual Environment Wrapper" >> ~/.bashrc
echo "alias workoncv-$cvVersion=\"source $SNAPDRAGONFLY_CURRENT_DIR_PATH/opencv-$cvVersion-py3/bin/activate\"" >> ~/.bashrc### enter virtual environment
source "$SNAPDRAGONFLY_CURRENT_DIR_PATH"/opencv-"$cvVersion"-py3/bin/activate### install python libraries within this virtual environment
pip install -r requirements.txt### quit virtual environment
deactivate

3.3 OpenCV C/C++环境安装

这里的命令含有部分脚本变量。如果大家copy下来,实际上是可以直接脚本运行的。

但是,国内环境复杂多变,如果顺序执行的脚本搞不定,还请一行一行手动执行。

注:后续有时间,会整理一些基本安装脚本,方便大家学习使用。

# https://github.com/opencv/opencv.git
wget https://github.com/opencv/opencv/archive/refs/tags/$cvVersion.zip
mv $cvVersion.zip $SNAPDRAGONFLY_CURRENT_OPENCV_ZIP
unzip $SNAPDRAGONFLY_CURRENT_OPENCV_ZIP
mv opencv-$cvVersion opencv# https://github.com/opencv/opencv_contrib.git
wget https://github.com/opencv/opencv_contrib/archive/refs/tags/$cvVersion.zip
mv $cvVersion.zip $SNAPDRAGONFLY_CURRENT_OPENCV_CONTRIB_ZIP
unzip $SNAPDRAGONFLY_CURRENT_OPENCV_CONTRIB_ZIP
mv opencv_contrib-$cvVersion opencv_contrib### Clean build directories
rm -rf opencv/build
rm -rf opencv_contrib/build### Build opencv
cd opencv
mkdir build
cd buildcmake -D CMAKE_BUILD_TYPE=RELEASE \-D WITH_TBB=ON \-D BUILD_TBB=OFF \-D WITH_V4L=ON \-D WITH_QT=ON \-D WITH_OPENGL=ON \-D OPENCV_GENERATE_PKGCONFIG=ON \-D INSTALL_PYTHON_EXAMPLES=ON \-D INSTALL_C_EXAMPLES=ON \-D OPENCV_PYTHON3_INSTALL_PATH=$SNAPDRAGONFLY_CURRENT_DIR_PATH/opencv-$cvVersion-py3/lib/python3.10/site-packages \-D OPENCV_ENABLE_NONFREE=ON \-D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib/modules \-D PYTHON_EXECUTABLE=../../opencv-$cvVersion-py3/bin/python3 \-D BUILD_EXAMPLES=ON ..make -j$(nproc)
make install

3.4 OpenCV Python虚拟环境安装

$ cp opencv/build/lib/python3/cv2.cpython-310-x86_64-linux-gnu.so opencv-4.9.0-py3/lib/python3.10/site-packages/cv2/cv2.so

3.5 OpenCV检查

大致看到下面输出,系统里面应该基本就安装好了。

  • C/C++环境
$ pkg-config --modversion opencv4
4.9.0
  • Python虚拟环境
$ workoncv-4.9.0
(opencv-4.9.0-py3) daniel@daniel-ThinkPad-SL410:~/OpenCV$ ipython
Python 3.10.12 (main, Nov 20 2023, 15:14:05) [GCC 11.4.0]
Type 'copyright', 'credits' or 'license' for more information
IPython 8.21.0 -- An enhanced Interactive Python. Type '?' for help.In [1]: import cv2In [2]: print(cv2.__version__)
4.9.0In [3]: quit
(opencv-4.9.0-py3) daniel@daniel-ThinkPad-SL410:~/OpenCV$ deactivate

4. 总结

笔者整理这份资料是搞了好几天的,遇到不少坑。

主要就是折腾在OpenCV开发环境不熟悉,网络复杂多变等问题上。希望整理出来,方便交流学习!

  • Github操作网络异常笔记
  • apt-get通过代理更新系统

注:感兴趣的朋友可以关注:SnapLearnOpenCV 和ubuntu22.04@laptop OpenCV Get Started。

补充:3.3章需要可能需要代理,具体情况请根据实际网络进行配置。

$ git config --global https.proxy http://192.168.1.13:808
$ export https_proxy=http://192.168.1.13:808

5. 参考资料

【1】ubuntu22.04@laptop 常用基础环境安装
【2】ubuntu22.04@laptop安装&配置VNC服务端
【3】ArduPilot开源代码之CompanionComputer上天计划

6. 补充 - python环境

之前发现python3环境下,cv2输出4.5.4,没有理解。后面发现该4.5.4是ubuntu deb安装包的版本。

$ python3 -c "import cv2; print(cv2.__version__)"
4.5.4

这篇关于ubuntu22.04@laptop OpenCV安装的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/685311

相关文章

Zookeeper安装和配置说明

一、Zookeeper的搭建方式 Zookeeper安装方式有三种,单机模式和集群模式以及伪集群模式。 ■ 单机模式:Zookeeper只运行在一台服务器上,适合测试环境; ■ 伪集群模式:就是在一台物理机上运行多个Zookeeper 实例; ■ 集群模式:Zookeeper运行于一个集群上,适合生产环境,这个计算机集群被称为一个“集合体”(ensemble) Zookeeper通过复制来实现

CentOS7安装配置mysql5.7 tar免安装版

一、CentOS7.4系统自带mariadb # 查看系统自带的Mariadb[root@localhost~]# rpm -qa|grep mariadbmariadb-libs-5.5.44-2.el7.centos.x86_64# 卸载系统自带的Mariadb[root@localhost ~]# rpm -e --nodeps mariadb-libs-5.5.44-2.el7

Centos7安装Mongodb4

1、下载源码包 curl -O https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-4.2.1.tgz 2、解压 放到 /usr/local/ 目录下 tar -zxvf mongodb-linux-x86_64-rhel70-4.2.1.tgzmv mongodb-linux-x86_64-rhel70-4.2.1/

使用opencv优化图片(画面变清晰)

文章目录 需求影响照片清晰度的因素 实现降噪测试代码 锐化空间锐化Unsharp Masking频率域锐化对比测试 对比度增强常用算法对比测试 需求 对图像进行优化,使其看起来更清晰,同时保持尺寸不变,通常涉及到图像处理技术如锐化、降噪、对比度增强等 影响照片清晰度的因素 影响照片清晰度的因素有很多,主要可以从以下几个方面来分析 1. 拍摄设备 相机传感器:相机传

Centos7安装JDK1.8保姆版

工欲善其事,必先利其器。这句话同样适用于学习Java编程。在开始Java的学习旅程之前,我们必须首先配置好适合的开发环境。 通过事先准备好这些工具和配置,我们可以避免在学习过程中遇到因环境问题导致的代码异常或错误。一个稳定、高效的开发环境能够让我们更加专注于代码的学习和编写,提升学习效率,减少不必要的困扰和挫折感。因此,在学习Java之初,投入一些时间和精力来配置好开发环境是非常值得的。这将为我

安装nodejs环境

本文介绍了如何通过nvm(NodeVersionManager)安装和管理Node.js及npm的不同版本,包括下载安装脚本、检查版本并安装特定版本的方法。 1、安装nvm curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash 2、查看nvm版本 nvm --version 3、安装

计算机毕业设计 大学志愿填报系统 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试

🍊作者:计算机编程-吉哥 🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。 🍊心愿:点赞 👍 收藏 ⭐评论 📝 🍅 文末获取源码联系 👇🏻 精彩专栏推荐订阅 👇🏻 不然下次找不到哟~Java毕业设计项目~热门选题推荐《1000套》 目录 1.技术选型 2.开发工具 3.功能

SWAP作物生长模型安装教程、数据制备、敏感性分析、气候变化影响、R模型敏感性分析与贝叶斯优化、Fortran源代码分析、气候数据降尺度与变化影响分析

查看原文>>>全流程SWAP农业模型数据制备、敏感性分析及气候变化影响实践技术应用 SWAP模型是由荷兰瓦赫宁根大学开发的先进农作物模型,它综合考虑了土壤-水分-大气以及植被间的相互作用;是一种描述作物生长过程的一种机理性作物生长模型。它不但运用Richard方程,使其能够精确的模拟土壤中水分的运动,而且耦合了WOFOST作物模型使作物的生长描述更为科学。 本文让更多的科研人员和农业工作者

K8S(Kubernetes)开源的容器编排平台安装步骤详解

K8S(Kubernetes)是一个开源的容器编排平台,用于自动化部署、扩展和管理容器化应用程序。以下是K8S容器编排平台的安装步骤、使用方式及特点的概述: 安装步骤: 安装Docker:K8S需要基于Docker来运行容器化应用程序。首先要在所有节点上安装Docker引擎。 安装Kubernetes Master:在集群中选择一台主机作为Master节点,安装K8S的控制平面组件,如AP

opencv 滚动条

参数介绍:createTrackbar( trackbarname , "hello" , &alpha_slider ,alpha_max ,  on_trackbar )  ;在标签中显示的文字(提示滑动条的用途) TrackbarName创建的滑动条要放置窗体的名字 “hello”滑动条的取值范围从 0 到 alpha_max (最小值只能为 zero).滑动后的值存放在