你应该了解的 OpenCV

带领大家了解 OpenCV。

在本系列上一篇文章中,我们带领大家掌握了颜色空间动态调节技巧。在本篇文章中,我们将带领大家了解 OpenCV。

前面连续几篇在 Jetson Nano 2GB 上,执行多个简单且实用的 Python 的 OpenCV 项目,都是轻松调用 JetPack 预装的 OpenCV 就能实现的功能,不需要额外安装其他库,包括人脸与眼睛检测的范例。

JetPack 为 Jetson Nano 2GB 安装的 OpenCV,是经过 NVIDIA 特调过的,因为 Jetson Nano 2GB 的目的是要成为边缘计算设备。由于各项计算资源都相对局限,因此 JetPack 所提供的 OpenCV 主要保留计算机视觉中最常用的基础功能。

以下就整理几个 Jetson Nano 2GB 上最常遇到的 OpenCV 问题:

1. 这个 OpenCV 是什么版本?

答:这里检查 OpenCV 版本的方法有很多种,下面两种是最简单的:

(1) 直接执行 opencv_version (如下截屏):

(2) 由于这里的 OpenCV 使用 dpkg 工具进行安装,因此可以使用以下指令检查版本:

第二种方法还能看到安装了支持 Python 的版本,以及 Samples 范例。

#### 2. 这个 OpenCV 支持哪个 Python 版本?

答:JetPack 为 Jetson Nano 2GB 安装了 2.7 与 3.6 两个版本 Python 开发环境,可以分别执行以下指令去分别确认。


表示这个 OpenCV 支持 2.7 与 3.6 这两个版本的 Python。

3. 这个 OpenCV 支持 CUDA 计算?

答:这里有个最简单的指令“opencv_read_cuda”,在任何地方执行,显示如下:

这里得到的答案颇令人意外,居然是“NO”,表示不支持 CUDA。

这是因为前面所说,为了节省 Jetson Nano 2GB 的计算资源,因此这个 OpenCV 只提供最基本计算机视觉的功能,连 NVIDIA 自己的 CUDA 支持部分也去除。如果需要使用支持 CUDA 功能的 OpenCV 版本,需要从 OpenCV 官网下载源代码进行安装,这类教材网上有很多,请自行处理。

#### 4. 这个 OpenCV 支持哪些库?

答:最简单的方式就是直接检查已安装的 lib 内容,请执行以下指令:

可以根据上述列表找出已安装的列表。

#### 5. 如何取得 OpenCV 完整的安装与支持信息?

答:可以在 python 里汇入 cv2 之后,执行 cv2.getBuildInformation(),如下图:

下面还有非常多的信息,例如与 C/C++ 有关的(如下截屏):


已安装的模组(如下截屏):

例如上图就能看到对 FFMPEG、GSTREAMER 与 v4l/v4l2 的支持版本。

对 Python 的支持(如下截屏):

信息内容非常多,请自行阅读。

6. 需要升级对 Python 的支持?例如执行 pip3 install opencv-python 或 sudo apt install python3-opencv

答:这两种方式都会产生问题,建议不要使用。

  • pip install opencv-python 安装方法只对 Python3 有效,但执行之后可能会影响稳定性。这次尝试的结果会造成“code-dump”错误。
  • sudo apt install python-opencv python3-opencv 会使 OpenCV 版本降为 3.2.0 也不合适使用。

以上针对 NVIDIA JetPack 为 Jetson Nano 2GB 所提供的 OpenCV 开发环境,以及大部分开发者最常见的问题,提供一个简单整理。

 


评论:
相关文章
用乐高打造太空电梯

用乐高积木打造太空电梯,重现科幻电影中的经典场景,感受宇宙探索的无限魅力。


App Inventor 编程实例及指南-第6章 巴黎地图旅游

本章将创建一个“向导”应用,带给你一次巴黎的梦幻之旅。


乐高WEDO打印机搭建分享

本文为一个乐高WEDO打印机的教学课件,供各位参考。


机器人技术七八级考试说明及知识框架

青少年机器人技术七级、八级着重于机器人智能处理能力的学习,基本编程语言为Python,采用RDK X3作为主控。


新加坡STEM课程概述——以STEM应用学习计划为例

新加坡教育部通过一系列举措来发展本国的STEM教育。文章以新加坡 STEM应用学习计划为例,介绍其产生的背景和具体的课程设计,分析其课程设计特点,为我国中小学STEM教育的实施提供参考。


LVGL简介

LVGL(Light and Versatile Graphics Library,轻巧而多功能的图形库)是一个免费的开放源代码图形库,它提供创建具有易于使用的图形元素,精美的视觉效果和低内存占用的嵌入式GUI所需的一切。


Emo:基于树莓派 4B DIY 能笑会动的桌面机器人

Emo 是一款个人伴侣机器人,集时尚与创新于一身。他的诞生离不开最新的树莓派 4 技术和先进的设计。他不仅仅是一款机器人,更是一个活生生的存在。


旅行者一号永不回航,致敬:64亿公里处的最后一次回眸

1990年2月14日,情人节,‘旅行者一号’正式与地球道别,转身拍下了太阳系的全家福,那最后一次回眸,留下了对‘家乡地球’所有的留恋与不舍,从此,今生今世,永不相见。


2024年青少年STEAM教育研究报告

报告由艾瑞咨询发布,对全球及中国STEAM教育发展进行了全面剖析。


STEM课程学习路径指南

新课标在秋季即将开始执行,其中信息科技课程与STEM教育是紧密相关的,如何更好的展开STEM学习,以培养孩子们的STEM思维呢?本文总结了一个STEM课程的学习路径,供家长参考。

Jetson Nano 基础教程

作者:英伟达小助理   共52讲

Jetson Nano 推出 2GB 内存版本,不仅承袭了 Jetson Nano 所有 AI 开发环境与 IOT 控制功能,也能学习或开发 Python、OpenCV 与 AI 深度学习、ROS 自动控制等应用。

课程