数据增强-亮度-对比度-色彩饱和度-色调-锐度 不改变图像大小
https://www.cnblogs.com/yanghailin/p/11106480.html
# coding=utf-8
import os
import os
import cv2
import math
import numpy as np
from PIL import Image
from PIL import ImageEnhance
"""
1、对比度:白色画面(最亮时)下的亮度除以黑色画面(最暗时)下的亮度;
2、色彩饱和度::彩度除以明度,指色彩的鲜艳程度,也称色彩的纯度;
3、色调:向负方向调节会显现红色,正方向调节则增加黄色。适合对肤色对象进行微调;
4、锐度:是反映图像平面清晰度和图像边缘锐利程度的一个指标。
"""
def compute(img):
per_image_Rmean = []
per_image_Gmean = []
per_image_Bmean = []
per_image_Bmean.append(np.mean(img[:, :, 0]))
per_image_Gmean.append(np.mean(img[:, :, 1]))
per_image_Rmean.append(np.mean(img[:, :, 2]))
R_mean = np.mean(per_image_Rmean)
G_mean = np.mean(per_image_Gmean)
B_mean = np.mean(per_image_Bmean)
return math.sqrt(0.241 * (R_mean ** 2) + 0.691 * (G_mean ** 2) + 0.068 * (B_mean ** 2))
def fun_color(image, coefficient, path_save):
# 色度,增强因子为1.0是原始图像
# 色度增强 1.5
# 色度减弱 0.8
enh_col = ImageEnhance.Color(image)
image_colored1 = enh_col.enhance(coefficient)
image_colored1.save(path_save)
def fun_Contrast(image, coefficient, path_save):
# 对比度,增强因子为1.0是原始图片
# 对比度增强 1.5
# 对比度减弱 0.8
enh_con = ImageEnhance.Contrast(image)
image_contrasted1 = enh_con.enhance(coefficient)
image_contrasted1.save(path_save)
def fun_Sharpness(image, coefficient, path_save):
# 锐度,增强因子为1.0是原始图片
# 锐度增强 3
# 锐度减弱 0.8
enh_sha = ImageEnhance.Sharpness(image)
image_sharped1 = enh_sha.enhance(coefficient)
image_sharped1.save(path_save)
def fun_bright(image, coefficient, path_save):
# 变亮 1.5
# 变暗 0.8
# 亮度增强,增强因子为0.0将产生黑色图像; 为1.0将保持原始图像。
enh_bri = ImageEnhance.Brightness(image)
image_brightened1 = enh_bri.enhance(coefficient)
image_brightened1.save(path_save)
def show_all():
file_root = "/media/data_1/data/images/"
save_root = "/media/py/save/"
list_file = os.listdir(file_root)
cnt = 0
for img_name in list_file:
cnt += 1
print("cnt=%d,img_name=%s" % (cnt, img_name))
path = file_root + img_name
name = img_name.replace(".jpg", "")
image = Image.open(path)
list_coe = [0.5,1,3]
for val in list_coe:
path_save_bright = save_root + name + "_bri_" + str(val) + ".jpg"
fun_bright(image, val, path_save_bright)
path_save_color = save_root + name + "_color_" + str(val) + ".jpg"
fun_color(image, val, path_save_color)
path_save_contra = save_root + name + "_contra_" + str(val) + ".jpg"
fun_Contrast(image, val, path_save_contra)
path_save_sharp = save_root + name + "_sharp_" + str(val) + ".jpg"
fun_Sharpness(image, val, path_save_sharp)
def my_aug():
file_root = "/media/data_1/data/images/"
save_root = "/media/data_2/ret/img_aug/"
list_file = os.listdir(file_root)
cnt = 0
for img_name in list_file:
cnt += 1
print("cnt=%d,img_name=%s" % (cnt, img_name))
path = file_root + img_name
name = img_name.replace(".jpg", "")
image = Image.open(path)
img = cv2.imread(path)
mean_1 = compute(img)
cof = 0.0
if mean_1 < 40:
cof = 3.5
elif mean_1 < 60:
cof = 3
elif mean_1 < 80:
cof = 2
elif mean_1 < 90:
cof = 1.5
elif mean_1 < 110:
cof = 1.1
elif mean_1 > 130:
cof = 0.5
else:
cof = 0.75
cof_contrast = 0.0
if cof>1:
cof_contrast = 1.5
else:
cof_contrast = 0.8
path_save_bright = save_root + name + "_bri_" + str(cof) + '.jpg'
fun_bright(image, cof, path_save_bright)
path_save_sharp = save_root + name + "_sharp_" + str(2) + '.jpg'
fun_Sharpness(image, 2, path_save_sharp)
path_save_contra = save_root + name + "_contra_" + str(cof_contrast) + ".jpg"
fun_Contrast(image, cof_contrast, path_save_contra)
path_save_color = save_root + name + "_color_" + str(1.5) + ".jpg"
fun_color(image, 1.5, path_save_color)
if __name__ == "__main__":
#show_all()
my_aug()
数据增强-亮度-对比度-色彩饱和度-色调-锐度 不改变图像大小相关推荐
- 图像调整亮度饱和度 c语言,数据增强-亮度-对比度-色彩饱和度-色调-锐度 不改变图像大小...
# coding=utf-8 import os import os import cv2 import math import numpy as np from PIL import Image f ...
- 总结 62 种在深度学习中的数据增强方式
数据增强 数据增强通常是依赖从现有数据生成新的数据样本来人为地增加数据量的过程 这包括对数据进行不同方向的扰动处理 或使用深度学习模型在原始数据的潜在空间(latent space)中生成新数据点从而 ...
- 深度学习数据增强数据扩增方法
随机裁剪 对图片随机0.6~1.0比率大小的区域进行裁剪. 然后resize到固定大小. torch.API torchvision.transforms.RandomCrop(size,paddin ...
- 大杀器!攻克目标检测难点秘籍四,数据增强大法
点击上方"AI算法修炼营",选择加星标或"置顶" 标题以下,全是干货 前面的话 在前面的秘籍一:模型加速之轻量化网络.秘籍二:非极大抑制算法和回归损失优化之路. ...
- 图像分类之花卉图像分类(一)数据增强
网上有很多图像分类的代码,有很多是必须要在GPU上面才能跑的,因为我想在自己的电脑跑,所以很多都是不能用的,而且说实话很多对我这个小白来说,都很难看懂.所以我找了一个就是之间用CNN写的神经卷积模型用 ...
- 目标检测中的数据增强
目标检测中的数据增强 技术标签: 深度学习 人工智能 一.图像遮挡 ①random erase 用随机值或训练集的平均像素替换图像区域. URL: https://arxiv.org/pdf/1708 ...
- 使用 imgaug 对图像进行数据增强 Data Augmentation
所谓数据增强,就正如 imgaug 库对自己的介绍: This python library helps you with augmenting images for your machine lea ...
- 数据增强:数据有限时如何使用深度学习 ?
转自:https://www.leiphone.com/news/201805/avOH5g1ZX3lAbmjp.html 这篇文章是对深度学习数据增强技术的全面回顾,具体到图像领域.这是<在有 ...
- 在QT框架下进行仿照PS图像调整功能设计(亮度对比度,色相饱和度及明度)
原文链接:https://blog.csdn.net/maozefa/article/details/4778934 图像亮度调整分为非线性和线性两种方法. 非线性图像亮度是将图像像素的R.G.B分别 ...
最新文章
- mysql 8.0.21 安装配置方法图文教程
- 近世代数--群同构--第一同构定理
- C#的循环语句(一)
- 在python中、对于函数定义代码的理解_python中如何理解装饰器代码?
- dababase 差异
- thymeleaf中的内联[ [ ] ]
- opencv基础--特征提取与配准(SIFT系列)
- 华三交换机如何进入配置_如何初始化配置H3C交换机
- 51单片机最小系统板
- Python中基于TCP网络通信协议的多人聊天室
- 快速恢复未保存的excel文件
- Gradle sync failed: Sync failed: reason unknown
- VIL100数据集处理
- 转换word等文件为swf文件
- EXCEL VBA基础:通过创建模块完成简单SUB过程
- redis集群值插槽算法灵魂拷问
- java 串口 dtr rts_串口(RS232 RS485等)通讯中RTS/CTS,DTR/DSR的含义详解
- 数据分析学习的侧重点是什么?
- 计算机网络中的CATV,有线电视网络(catv)中的多媒体通信_视频通信
- MixZle Lite:动手又动脑的益智投球游戏
热门文章
- i.MXU6LL - 制作烧录SD卡详细步骤
- JAP的类关系 @OneToMany 和 @ManyToManys
- ANSYS workbench 根据坐标施加载荷- external data载荷映射
- esp32 Micropython驱动ST7735 1.8寸TFT屏幕 中文显示;时间显示、网络network实时时间获取utptime;urequests、upip等包安装
- quartus 13.0 网络盛传的破解方法勘误(网传大多数破解步骤有误)
- 利用vbs维护qtp的虚拟对象的坐标
- 浏览器 User-Agent 大全
- Fater RCNN 试着加入注意力机制模型
- QT程序图标不能显示解决
- 稳压二极管与TVS二极管的区别