一些基础的图像增强方法,批量处理饱和度、噪声、对比度等调整
帮助你高效处理图片,扩大训练集数量,提高训练精度。
1.对比度、锐度、亮度
from PIL import Image
from PIL import ImageEnhance
import osrootdir = r'/media/jidong/code/zdata/val' # 指明被遍历的文件夹
for parent, dirnames, filenames in os.walk(rootdir):for filename in filenames:currentPath = os.path.join(parent, filename)im = Image.open(currentPath)print(filename)# enh_con = ImageEnhance.Contrast(im) # 增加对比度# image_contrasted = enh_con.enhance(0.5)# newname1 = r"/media/jidong/code/zdata/tr-duib/" + filename# image_contrasted.save(newname1)# enh_sha = ImageEnhance.Sharpness(im) # 增加锐度# image_sharped = enh_sha.enhance(3.0)# newname2 = r"/media/jidong/code/zdata/vl-sha/" + filename# image_sharped.save(newname2)# 增加亮度enh_bri = ImageEnhance.Brightness(im)image_brightened = enh_bri.enhance(0.5)newname3 = r"/media/jidong/code/zdata/vl-brig/" + filenameimage_brightened.save(newname3)## enh_col = ImageEnhance.Color(im_rotate) # 增加色度 但是有问题,# image_colored = enh_col.enhance(1.5)# newname4 = r"/home/qxq/Desktop/eyedata_final/mask/brighten/" + 'Col_' + filename# image_contrasted.save(newname4)j = 0
2.椒盐噪声、高斯噪声
import os
import cv2
import numpy as np
import randomdef sp_noise(noise_img, proportion):'''添加椒盐噪声proportion的值表示加入噪声的量,可根据需要自行调整return: img_noise'''height, width = noise_img.shape[0], noise_img.shape[1]#获取高度宽度像素值num = int(height * width * proportion) #一个准备加入多少噪声小点for i in range(num):w = random.randint(0, width - 1)h = random.randint(0, height - 1)if random.randint(0, 1) == 0:noise_img[h, w] = 0else:noise_img[h, w] = 255return noise_imgdef gaussian_noise(img, mean, sigma):'''此函数用将产生的高斯噪声加到图片上传入:img : 原图mean : 均值sigma : 标准差返回:gaussian_out : 噪声处理后的图片'''# 将图片灰度标准化img = img / 255# 产生高斯 noisenoise = np.random.normal(mean, sigma, img.shape)# 将噪声和图片叠加gaussian_out = img + noise# 将超过 1 的置 1,低于 0 的置 0gaussian_out = np.clip(gaussian_out, 0, 1)# 将图片灰度范围的恢复为 0-255gaussian_out = np.uint8(gaussian_out*255)# 将噪声范围搞为 0-255# noise = np.uint8(noise*255)return gaussian_out# 这里也会返回噪声,注意返回值def convert(input_dir, output_dir):for filename in os.listdir(input_dir):path = input_dir + "/" + filename # 获取文件路径print("doing... ", path)noise_img = cv2.imread(path) # 读取图片# img_noise = gaussian_noise(noise_img, 0, 0.1) # 高斯噪声img_noise = sp_noise(noise_img, 0.05)# 椒盐噪声# img_noise = random_noise(noise_img,500)# 随机噪声cv2.imwrite(output_dir+'/'+filename, img_noise)if __name__ == '__main__':input_dir = "/media/jidong/code/zdata/val" # 输入数据文件夹output_dir = "/media/jidong/code/zdata/vl-jzao" # 输出数据文件夹convert(input_dir, output_dir)
3.翻转
# -*- coding: UTF-8 -*-from PIL import Image
import os# 获得文件夹下所有文件
filePath = '/media/jidong/code/shilidata/val/'
filenames = os.listdir(filePath)# 指定保存的文件夹
outputPath = '/media/jidong/code/shilidata/vl-fan/'# 迭代所有图片
for filename in filenames:# 读取图像im = Image.open(filePath + filename)# 指定逆时针旋转的角度im_rotate = im.rotate(180)# 保存图像im_rotate.save(outputPath + filename)
4.饱和度
import numpy as np
import cv2
import os# 调整最大值
MAX_VALUE = 100def update(input_img_path, output_img_path, lightness, saturation):"""用于修改图片的亮度和饱和度:param input_img_path: 图片路径:param output_img_path: 输出图片路径:param lightness: 亮度:param saturation: 饱和度"""# 加载图片 读取彩色图像归一化且转换为浮点型image = cv2.imread(input_img_path, cv2.IMREAD_COLOR).astype(np.float32) / 255.0# 颜色空间转换 BGR转为HLShlsImg = cv2.cvtColor(image, cv2.COLOR_BGR2HLS)# 1.调整亮度(线性变换)hlsImg[:, :, 1] = (1.0 + lightness / float(MAX_VALUE)) * hlsImg[:, :, 1]hlsImg[:, :, 1][hlsImg[:, :, 1] > 1] = 1# 饱和度hlsImg[:, :, 2] = (1.0 + saturation / float(MAX_VALUE)) * hlsImg[:, :, 2]hlsImg[:, :, 2][hlsImg[:, :, 2] > 1] = 1# HLS2BGRlsImg = cv2.cvtColor(hlsImg, cv2.COLOR_HLS2BGR) * 255lsImg = lsImg.astype(np.uint8)cv2.imwrite(output_img_path, lsImg)dataset_dir = '/media/jidong/code/zdata/val'
output_dir = '/media/jidong/code/zdata/vl-baoh'# 这里调参!!!
lightness = int(input("lightness(亮度-100~+100):")) # 亮度
saturation = int(input("saturation(饱和度-100~+100):")) # 饱和度# 获得需要转化的图片路径并生成目标路径
image_filenames = [(os.path.join(dataset_dir, x), os.path.join(output_dir, x))for x in os.listdir(dataset_dir)]
# 转化所有图片
for path in image_filenames:update(path[0], path[1], lightness, saturation)
祝你早日发CVPR、ICCV等一流会议、期刊
加油,加油,加油!!!!!
一些基础的图像增强方法,批量处理饱和度、噪声、对比度等调整相关推荐
- ECCV2022 | 开源:基于可分离级联查找表的实时图像增强方法
近日,阿里巴巴大淘宝音视频算法与基础技术团队和上海交通大学图像所合作论文<SepLUT: Separable Lookup Tables for Real-time Image Enhancem ...
- 用于夜视和监控的图像增强方法
用于夜视和监控的图像增强方法 目录 用于夜视和监控的图像增强方法 摘要 介绍 2.夜视图像增强方法 3.实验结果 4.讨论 论文<Experiments on image enhancement ...
- 设计零基础配色的方法有哪些?怎么样才能配好色?
本文由:"学设计上兔课网"原创,图片素材来自网络,仅供学习分享 设计零基础配色的方法有哪些?怎么样才能配好色?颜色在设计和日常生活中起着至关重要的作用.它可以吸引你的眼球.有时,它 ...
- 基于颜色直方图优化的图像增强方法
最近改图像颜色迁移的论文,审稿人要求补充基于直方图优化的方法细节.趁此机会,我重新下载了相关文献,决定重新学习下该类方法,并把一些细节记录在本篇博客中,供交流学习. 目录 1. 前言 2. 背景知识 ...
- 一种简单快速有效的低照度图像增强方法
一种简单快速有效的低照度图像增强方法 一.本文介绍的是一种比较实用并且去阴影效果很好的方法,选自2004年Tao的一篇论文,名称是<An Integrated Neighborhood Depe ...
- DL图像增强方法--《DSLR-Quality Photos on Mobile Devices with Deep Convolutional Networks,2017》
DL图像增强方法–<DSLR-Quality Photos on Mobile Devices with Deep Convolutional Networks,2017> 这篇文章提出了 ...
- android源码下载方法 批量下载 基于windows os
安装win版的Gitbash, 在这里 http://msysgit.googlecode.com/files/Git-1.6.0.2-preview20080923.exe. 选择默认安装路径(否则 ...
- 刻意练习:Python基础 -- Task11. 魔法方法
背景 我们准备利用17天时间,将 "Python基础的刻意练习" 分为如下任务: Task01:变量.运算符与数据类型(1day) Task02:条件与循环(1day) Task0 ...
- 小米手机系统服务组件是干什么的_怎么查看小米手机MIUI系统的基本功能-小米手机MIUI系统基础功能查询方法讲解...
小米手机是国产品牌手机中口碑较好的手机之一,受到大家的喜爱,配置功能丰富,价格实惠.亲们或许都不知道怎么查看小米手机MIUI系统的基本功能,小编很高兴为大家解决这个问题,接下来就为大家奉上小米手机MI ...
最新文章
- 原来颓废也是需要力气的
- golang 判断目录是否为空
- 销售Invoice管理流程
- Oracle 字符串函数
- 独家专访Mockplus CEO老布,原型设计领域的弄潮儿
- 六元均匀直线阵的各元间距为_给棉花地选购滴灌带时记住这几点,不再为棉花滴水时发愁...
- 如何删除虚拟机上的操作系统、删除新建的虚拟机
- [转]详细介绍如何做关联
- ZooKeeper程序员指南--使用ZooKeeper开发分布式应用程序
- 硬核图解| Kafka 如何保证消息不丢失?
- 【java】简介(一)
- hnu2021小学期程序设计 电话号码
- Centos Python安装graphviz和pydotplus
- Linux系统配置jdk环境变量
- PS一键磨皮插件磨皮DR4.5中文增强版(PS CC 2014-2019),人像修图调色软件
- IsValid函数基本用法
- EKF扩展卡尔曼滤波算法做电池SOC估计,在Simulink环境下对电池进行建模
- 虐心的《西部世界》第二季:我看哭了 人类和AI傻傻分不清
- Linux内核内存管理(2):固定映射地址(fixmap)和输入输出重映射(ioremap)
- 怎么让Html的高度自适应屏幕高度