想要将收集好的数据s进行统一命名 数量整理
就需要提前进行预处理
import numpy as npimport osimport randomimport cv2
# wuao文件名修改,1~10文件名
filename = os.listdir('./faces/wuao/')
for i,name in enumerate(filename):os.rename('./faces/wuao/%s'%(name),'./faces/wuao/%d.jpg'%(i+1))
dirs = os.listdir('./faces/')
l_name = set([i for i in range(1,11)])
for d in dirs:filename = [int(f.split('.')[0]) for f in os.listdir('./faces/%s'%(d))]if len(filename) < 10:for i in range(10 - len(filename)):fn = random.choice(filename)cv2.imwrite('./faces/%s/%d.jpg'%(d,i+50),cv2.imread('./faces/%s/%s.jpg'%(d,fn)))
dirs = os.listdir('./faces/')
l_name = set([i for i in range(1,11)])
for d in dirs:filename = [int(f.split('.')[0]) for f in os.listdir('./faces/%s'%(d))]print(d,len(filename))
coolboy 10
gang 10
liuwang 10
renwenjie 10
wangning 10
wujingan 10
dirs = os.listdir('./faces/')
l_name = set([i for i in range(1,11)])
for d in dirs:filename = set([int(f.split('.')[0]) for f in os.listdir('./faces/%s'%(d))])no_change = l_name.intersection(filename)chang = filename.difference(no_change)change_name = l_name.difference(no_change)for c1,c2 in zip(chang,change_name):os.rename('./faces/%s/%d.jpg'%(d,c1),'./faces/%s/%d.jpg'%(d,c2))
dirs = os.listdir('./faces/')
for d in dirs:filename = set([int(f.split('.')[0]) for f in os.listdir('./faces/%s'%(d))])print(filename)
#{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
#{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
#{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
#{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
#{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
#{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
#{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
#{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
#{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
#{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
#{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
#{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
#{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
#{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
#{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
#{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
#{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
#{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
#{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
#{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
s1 = set([1,2,3,4,5,6,7,8,9,10])
s2 = set([3,4,5,6,11,12,13,14,15,16])
s3 = s1.intersection(s2)
print('不需要修改的文件',s3)
print('需要修改的文件',s2.difference(s3))
print('备选要修改的名字是:',s1.difference(s3))
不需要修改的文件 {3, 4, 5, 6}
需要修改的文件 {11, 12, 13, 14, 15, 16}
备选要修改的名字是: {1, 2, 7, 8, 9, 10}
a = np.array([1,2,3,4,5])b = np.array(list('abcde'))for s1,s2 in zip(a,b):print(s1,s2)
#1 a
#2 b
#3 c
#4 d
#5 e
# 图片的尺寸,不统一,将图片尺寸,统一化操作
dirs = os.listdir('./faces/')
for d in dirs:filename = [f for f in os.listdir('./faces/%s'%(d))]for fn in filename:img = cv2.imread('./faces/%s/%s'%(d,fn))w,h,c = img.shapeif w != 64:img2 = cv2.resize(img,(64,64))cv2.imwrite('./faces/%s/%s'%(d,fn),img2)