问题描述
将一张验证码的颜色修改为另外的三种颜色(自定义),并保存下来。
解决办法
由于图片的背景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