【机器学习】opencv-数据预处理
生活随笔
收集整理的這篇文章主要介紹了
【机器学习】opencv-数据预处理
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
想要將收集好的數據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)?
總結
以上是生活随笔為你收集整理的【机器学习】opencv-数据预处理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python爬虫个人记录(二) 获取fi
- 下一篇: 机器学习之决策树与随机森林