opencv_python实现批量图片颜色变换,可用于数据增强

变换原理HSV

算法流程:cv2依次读取文件下图片rgb值,再转为hsv,通过改变hsv中的h(即色调)值改变图片的颜色,生成多张颜色变换后的图片(可用于数据增强)。

废话不多说,上代码(用的时候记得将两个文件夹路径改为自己的输入和输出路径,文件夹下的图片按1,2,3,…的顺序命名):

import cv2

num = 0 #读取的图片序号 
num_max = 7 #图片总数量
hue_change = 5 #色调改变值 步长
count = 0 #记录每张图片生成的数量

while 1:
    img_name = 'C:/Users/hq/Desktop/person_img/img/%s.jpg' % str(num+1)
    img=cv2.imread(img_name, cv2.IMREAD_COLOR)    # 打开文件
     
    # 通过cv2.cvtColor把图像从BGR转换到HSV
    img_hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
     

    turn_green_hsv = img_hsv.copy()
    # 色调hue变化范围5——50
    for i in range(1,11):
        turn_green_hsv[:, :, 0] = (turn_green_hsv[:, :, 0] + hue_change*i) % 180
        turn_green_img = cv2.cvtColor(turn_green_hsv, cv2.COLOR_HSV2BGR)

        cv2.imwrite('C:/Users/hq/Desktop/person_img/color_change_img/%s_%s.jpg'%(str(num+1), str(count+1)), turn_green_img)
        print("successfully save %s_%s pic" %(str(num+1), str(count+1)))
        count += 1

    if num == num_max - 1:
        exit(0)
    
    count = 0
    num += 1

运行结果:


这是笔者的输入文件夹下的图片:
在这里插入图片描述
这是输出文件夹下的生成结果:
在这里插入图片描述
注:笔者的预设色调变换值是5~50,各位读者可以根据需求,自己设置h的步长以及范围。

  • 2
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值