IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 【OpenCv】图像的数据增强:HSV色彩空间介绍以及与BGR空间的转换 -> 正文阅读

[人工智能]【OpenCv】图像的数据增强:HSV色彩空间介绍以及与BGR空间的转换

一、HSV颜色模型介绍

HSV(Hue, Saturation, Value)是根据颜色的直观特性创建的一种颜色空间, 也称六角锥体模型。该模型中颜色的参数分别是色调(H)、饱和度(S)、明度(V)。

(1)色调 H:

用角度度量,取值范围为0°~360°。从红色开始按逆时针方向计算,红色为0°,绿色为120°,蓝色为240°。它们的补色是:黄色为60°,青色为180°,紫色为300°。

(2)饱和度 S
饱和度表示颜色接近光谱色的程度。一种颜色,可以看成是某种光谱色与白色混合的结果。其中光谱色所占的比例愈大,颜色接近光谱色的程度就愈高,颜色的饱和度也就愈高。饱和度高,颜色则深而艳。光谱色的白光成分为0,饱和度达到最高。通常取值范围为0%~100%,值越大,颜色越饱和。

(3)明度 V
明度表示颜色明亮的程度,对于光源色,明度值与发光体的光亮度有关;对于物体色,此值和物体的透射比或反射比有关。通常取值范围为0%(黑)到100%(白)。

RGB和CMY颜色模型都是面向硬件的,HSV颜色模型是面向用户的。

二、利用HSV模型进行图像数据增强

以yolox官方代码的数据增强为例:

import numpy as np
import cv2


# 源代码中 hgain=5, sgain=30, vgain=30,数值偏小,增强后的图像与原图像几乎没什么区别。
def augment_hsv(img, hgain=30, sgain=80, vgain=80):
    hsv_augs = np.random.uniform(-1, 1, 3) * [hgain, sgain, vgain]   # random gains
    hsv_augs *= np.random.randint(0, 2, 3)  # random selection of h, s, v
    hsv_augs = hsv_augs.astype(np.int16)
    img_hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV).astype(np.int16)
    # img_hsv.shape = (450, 720, 3)

    img_hsv[..., 0] = (img_hsv[..., 0] + hsv_augs[0]) % 180
    img_hsv[..., 1] = np.clip(img_hsv[..., 1] + hsv_augs[1], 0, 255)
    img_hsv[..., 2] = np.clip(img_hsv[..., 2] + hsv_augs[2], 0, 255)
    cv2.cvtColor(img_hsv.astype(img.dtype), cv2.COLOR_HSV2BGR, dst=img)   # no return needed


image=cv2.imread("cat_vs_dog.jpg")    # image.shape = (450, 720, 3)
cv2.imshow("image",image)
augment_hsv(image)
cv2.imshow("image_aug",image)
cv2.waitKey()

代码解释:

第7行:
np.random.uniform(low,high,size)表示从一个均匀分布[low,high)中随机采样浮点数,size为采样数。
np.random.uniform(-1, 1, 3)得到的一个结果是一个 1*3的list
np.random.uniform(-1, 1, 3) * [hgain, sgain, vgain] 是对应位置分别相乘,结果还是 1*3的list

第8行:
np.random.randint(low,high,size) 表示从一个均匀分布[low,high)中随机采样整数,size为采样数。

第10行:
cv2.cvtColor(input_img, flag) 用于颜色空间转换,flag = cv2.COLOR_BGR2HSV)表示 BGR->HSV

第14行:
numpy.clip(a, a_min, a_max)表示将数组a中的元素进行裁剪,使得得到的新数组元素取值范围为[a_min, a_max]
img_hsv[..., 1] = np.clip(img_hsv[..., 1] + hsv_augs[1], 0, 255) 表示将img_hsv第二个通道的值限制在[0, 255]

图像增强效果:

在这里插入图片描述

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-05-13 11:44:22  更:2022-05-13 11:47:26 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 5:40:42-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码