yolov5-5.0版本代码详解----augmentations.py的augment_hsv函数

1、用途

图片的hsv色域增强模块

2、调用位置

在datasets.py的LoadImagesAndLabels类的__getitem__函数(590行)调用
传入参数是hyp文件中的hsv三通道的系数

            augment_hsv(img, hgain=hyp['hsv_h'], sgain=hyp['hsv_s'], vgain=hyp['hsv_v'])

3、代码注释

3.1 传入参数
def augment_hsv(im, hgain=0.5, sgain=0.5, vgain=0.5):"""参数:img: 待处理图片  BGRhgain: h通道色域参数 用于生成新的h通道,默认为0.5sgain: h通道色域参数 用于生成新的s通道,默认为0.5vgain: h通道色域参数 用于生成新的v通道,默认为0.5"""
3.2 HSV颜色空间增强
    if hgain or sgain or vgain:# 随机取-1到1三个实数,乘以hyp中的hsv三通道的系数  用于生成新的hsv通道r = np.random.uniform(-1, 1, 3) * [hgain, sgain, vgain] + 1# 图像的通道拆分 h s vhue, sat, val = cv2.split(cv2.cvtColor(im, cv2.COLOR_BGR2HSV))dtype = im.dtype  # uint8x = np.arange(0, 256, dtype=r.dtype)lut_hue = ((x * r[0]) % 180).astype(dtype)  # 生成新的h通道lut_sat = np.clip(x * r[1], 0, 255).astype(dtype)  # 生成新的s通道lut_val = np.clip(x * r[2], 0, 255).astype(dtype)  # 生成新的v通道# 图像通道合并 img_hsv=h+s+v  随机调整hsv之后重新组合hsv通道# cv2.LUT(hue, lut_hue)   通道色域变换 输入变换前通道hue 和变换后通道lut_hueim_hsv = cv2.merge((cv2.LUT(hue, lut_hue), cv2.LUT(sat, lut_sat), cv2.LUT(val, lut_val)))# no return needed  dst:输出图像cv2.cvtColor(im_hsv, cv2.COLOR_HSV2BGR, dst=im)

yolov5-5.0版本代码详解----augmentations.py的augment_hsv函数相关推荐

  1. 一、DeepSort C++版本代码详解-deepsort.cpp

    本文源码基于开源项目:https://github.com/bianjingshan/MOT-deepsort.git 内容简介: 目前主流的目标跟踪算法都是基于Tracking by Detecti ...

  2. Yolov5代码详解——detect.py

    首先执行扩展包的导入: import argparse import os import platform import sys from pathlib import Path ​ import t ...

  3. Vue2.0 脚手架代码详解

    参考作者:https://www.jianshu.com/p/2b661d01eaf8 只是为了方便个人学习. 来看一下脚手架创建后的项目目录  说明:在*.vue文件,template标签里写htm ...

  4. 版本代码详解:Alpha,Beta,Rc,GA,RTM,OEM等简称都代码什么意义

    为什么80%的码农都做不了架构师?>>>    Alpha:是内部测试版,一般不向外部发布,会有很多Bug.一般只有测试人员使用. Beta:也是测试版,这个阶段的版本会一直加入新的 ...

  5. 【PHP】PHP5.4.0版本ChangeLog详解(上)

    前言 随着大量的框架使用composer和namespace,渐渐的线上环境也从之前的5.3变成了5.4或者5.5甚至5.6,随着7月份PHP7的发布,会有更多的公司采用新版本. 之前好久就想写这样的 ...

  6. Kaggle泰坦尼克号-决策树Top 3%-0基础代码详解

    Titanic Disaster Kaggle,里的经典入门题目,因为在学决策树所以找了一个实例学习了一下,完全萌新零基础,所以基本每一句都做了注释. 原文链接:Titanic: Simple Dec ...

  7. yolov5的detect.py代码详解

    目标检测系列之yolov5的detect.py代码详解 前言 哈喽呀!今天又是小白挑战读代码啊!所写的是目标检测系列之yolov5的detect.py代码详解.yolov5代码对应的是官网v6.1版本 ...

  8. jQuery选择器代码详解(一)——Sizzle方法

    对jQuery的Sizzle各方法做了深入分析(同时也参考了一些网上资料)后,将结果分享给大家.我将采用连载的方式,对Sizzle使用的一些方法详细解释一下,每篇文章介绍一个方法. 若需要转载,请写明 ...

  9. python实现二分查找代码+详解

    python实现二分查找代码+详解 一.规定函数值 函数输入值 li=[1,2,3,4,5,6,7,8,9]#输入的集合 val=4#要查找的值 函数内部值 left=0#代表集合中第一个值的位置 r ...

最新文章

  1. Python学习--not语句
  2. python爬虫自学网站_Python爬虫3步曲:5分钟学习用Python解析网页
  3. SpringMVC4集成ehcache
  4. NLP:基于snownlp库对文本实现提取文本关键词和文本摘要
  5. 小游戏专场:腾讯云Game-Tech技术沙龙上海站顺利落下帷幕
  6. 参与Apache顶级开源项目的N种方式,Apache Dubbo Samples SIG 成立!
  7. python3网络爬虫开发实战豆瓣_大牛程序员教你1天入门Python3 网络爬虫例子
  8. 从入门到头秃,2018年机器学习图书TOP10
  9. Python:Python全球生态主站,pip安装方法、集成安装方法、文件安装方法、第三方库自动安装脚本
  10. 接受字符串参数,返回一个元组,并分别统计字符串中大小写的个数
  11. vscode插件安装失败的解决方案
  12. css实现--三角形/箭头(上下左右)--详细原理
  13. 61家第三方收单机构、247家商业银行、70家农商银行及119家村镇银行收单机构号
  14. Oracle物化视图的刷新
  15. 技术族谱:预告片的制作思路
  16. 中国手机企业库存高达6000万,市场正常后或大规模降价促销
  17. 深度学习环境搭建超级详解(Miniconda、pytorch安装)
  18. 调查显示,“大辞职潮”对经理层打击最为严重,工作倦怠成为离职的关键原因 | 美通社头条...
  19. 使用A*算法求迷宫最短路径问题
  20. 数字身份认证已经成为数字身份的关键命题

热门文章

  1. lcs串 java,lcs
  2. 微信朋友圈被折叠?会自动化不存在的(下)
  3. 优秀技术Leader应具备的六项能力!
  4. Cadence OrCAD Capture instance属性和occurences属性的区别
  5. 基于数据库排他锁实现分布式锁
  6. 2021-03-10:java第十三天:成员内部类、匿名内部类和匿名对象、接口的使用、JShell
  7. tasker+server酱转发未接来电到公号
  8. docker笔记(二)之镜像加速器
  9. QT4、5、6各版本之间的特点和选择
  10. Mysql索引优化详解