颜色空间动态调节技巧

带领大家了解 Jetson Nano 2GB 的颜色空间动态调节技巧。
在本系列上一篇文章 中,我们带领大家调节了 CSI 图像质量。在本篇文章中,我们将带领大家了解 Jetson Nano 2GB 的颜色空间动态调节技巧。

HSV 色彩空间是计算机视觉领域应用频率非常高的颜色模型,主要有 Hue(色调)、Saturation(饱和度)与 Value(值)三者组合而成,与一般比较熟悉的 RGB 或 BGR 像点值组成颜色的方式是完全不同的。

在前面做过的“追踪特定颜色物件”实验中,必须不断修改代码中的某些值,然后重复执行代码去确认这些值的正确性,这对于某个特定颜色来说还勉强可以用用,但如果需要动态地对多种颜色进行识别的话,那可就令人头痛了。

因此本文特别提供一个简单工具,结合 OpenCV 的 createTaskbar 与 getTrackbarPos 这两个功能,协助初学者掌握颜色变化时的各项参数。

创建 BGR 色彩空间调色板

首先以人类习惯的 BGR 颜色空间为例,创建一个最简单的调色板,完整代码如下:

执行的结果如下图,用鼠标滑动 B/G/R 的值,下面色块会根据上面三个值的组合进行实时调整。

这是个非常简单而且实用的工具。接下来我们将 BGR 颜色空间修改成 HSV 颜色空间,因为大部分计算机视觉的应用,是采用 HSV 颜色空间进行转换。

创建 HSV 色彩空间调色板

关于 HSV 的原理,请自行百度上参考其细节,这里只挑与代码有关的部分简单说明。

在 Hue 色调部分由于有个上下限的范围,执行结果就会出现如下图的调色板,可用鼠标调整每个数值。不过到此只是显示这个调色板,还不具备任何功能。

使用 HSV 色彩空间调色板

接下去将前面“追踪特定颜色物件”代码集成进来,最终目的是利用这个调色板对特定颜色进行过滤(追踪)的功能,主要步骤如下(代码见“粗体底线”部分):

  1. 集成 CSI 摄像头:将调用 CSI 摄像头代码完整复制进来
  2. 读入图像,然后透过 cv2.cvtColor() 转成 HSV 格式,存到 hsv 变量
  3. 将调色板上的对应值,分别写入 hsvLowerBound 与 hsvUpperBound 里面,作为计算掩码的范围依据
  4. 用 cv2.inRange() 函数找出 hsv 的掩码,存到 mask 变量
  5. 用 cv2.bitwise_and() 函数将 frame 与 mask 进行 AND 计算,过滤掉“非绿”部分,将结果存到 detect 变量
  6. 将原图(frame)与结果(detect) 显示在画面上

执行后的显示结果如下,左边是原图,中间是调色板,右边是调整后筛选的颜色:

利用鼠标调节中间调色板的各项数值,然后右边的结果就会立即产生变化:

以上色彩空间调色板的制作,应该会对您有所帮助。

 


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

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


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 自动控制等应用。

课程