OpenCV改变验证码图片颜色

问题描述

将一张验证码的颜色修改为另外的三种颜色(自定义),并保存下来。

解决办法

由于图片的背景rgb不全为(255,255,255),但是接近于(255,255,255),可以由此设置阈值。

# -*- coding:utf-8 -*-

import cv2
import Image
import os
import numpy as np
n = 1
def picture(r,g,b,img_dir,n):
    img = cv2.imread(img_dir) #读取图片
    rows = img.shape[0]
    cols = img.shape[1]
    for x in range(rows):
        for y in range(cols):
        #设置阈值
            if 255-img[x,y][0]<90 and 255-img[x,y][1]<90 and 255-img[x,y][2]<90:
                img[x,y]=(255,255,255)
            else:
                img[x,y][0] =r
                img[x,y][1] =g
                img[x,y][2] =b
    #保存路径
    save_dir = "/home/xuna/桌面/3/" + now_dir.split(".")[0]+ "_" + str(n) + ".jpg"
    cv2.imwrite(save_dir,img)



if __name__=="__main__":
    #遍历此目录下的所有文件
    all_dirs = os.listdir("/home/xuna/桌面/ret4_change_color/")

    for now_dir in all_dirs:
        img = "/home/xuna/桌面/ret4_change_color/" + str(now_dir);
        #设置三种颜色的rgb
        picture(85,26,139,img,1)
        picture(34,139,34,img,2)
        picture(0,0,255,img,3)

        n = n + 1
        if n == 2:
            break
        print n
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值