码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 【数据增强】图像数据的几种增广方式


    文章目录

    • 1. 调整图片亮度(曝光度)
    • 2. 同时调整图片对比度和亮度
    • 3. 加高斯噪声
    • 4. 图像反转
    • 5. 透视变换
    • 6. 添加虚拟光源,模拟图片中部分区域的曝光

    只做几种增广方式中的展示,有的增广方式 要注意 坐标Label对应的转换!
    其他增广方式,自行百度。
    下面代码展示都是使用python的opencv库

    1. 调整图片亮度(曝光度)

    def add_brightness(image, gamma_range=[0.8, 1.2]):
        if random.random() < 0.8:
            gamma = gamma_range[0] + (gamma_range[1] - gamma_range[0]) * random.uniform(0, 1)
            inv_gamma = 1.0 / gamma
            table = np.array([((i / 255.0) ** inv_gamma) * 255
                              for i in np.arange(0, 256)]).astype('uint8')
            image = cv2.LUT(image, table)
        return image
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    2. 同时调整图片对比度和亮度

    此处参考自:链接

    注意:

    1. 系数a 表示 原图src提高的对比度程度(0-1变暗,>1变亮)
    2. 系数g 表示 亮度变化值(>0图像亮度值提高,<0图像亮度值降低)
    import cv2 as cv
    import numpy as np
     
     
    # 粗略的调节对比度和亮度
    def contrast_brightness_image(src1, a, g):
        h, w, ch = src1.shape  # 获取shape的数值,height和width、通道
     
        src2 = np.zeros([h, w, ch], src1.dtype)  # 新建全零图片数组src2,将height和width,类型设置为原图片的通道类型(色素全为零,输出为全黑图片)
        # type() 返回数据结构类型(list、dict、numpy.ndarray 等)
        # dtype() 返回数据元素的数据类型(int、float等)
     
        dst = cv.addWeighted(src1, a, src2, 1 - a, g)  # addWeighted函数说明如下
        # addWeighted函数:官方:计算两个图像阵列的加权和 我的理解是按照所占比例合成两张图片。
        # addWeighted(InputArray src1, double alpha, InputArray src2, double beta, double gamma, OutputArray dst, int dtype=-1);
        # a表示图一src1的权重,1-a图二src2的权重
        # 有公式得出两个图片加成输出的图片为:dst=src1*alpha+src2*beta+gamma
        cv.namedWindow("con-bri-demo", cv.WINDOW_NORMAL)
        cv.resizeWindow(
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
  • 相关阅读:
    Flex布局
    基于51单片机十字路交通灯仿真_黄灯闪烁_正常模式+夜间模式+紧急模式
    HTTP协议初相识:了解HTTP协议
    c语言 char* 和char[]的返回值
    Android四大组件详解
    Git(第一篇)——Git的下载与安装(史上最全最详细)
    02矩阵01 —— 基本矩阵 : 对角矩阵、方幂、数量矩阵、转置矩阵、对称矩阵、逆矩阵、奇异矩阵、三角矩阵
    【Linux】高级IO --- Reactor网络IO设计模式
    【SpringBoot实战】数据访问整合Mybatis和Redis
    又到中秋节,通过C语言利用SimpleCG制作电子贺卡
  • 原文地址:https://blog.csdn.net/All_In_gzx_cc/article/details/127431924
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号