forked from endernewton/tf-faster-rcnn
-
Notifications
You must be signed in to change notification settings - Fork 0
/
g_img_path.py
108 lines (94 loc) · 3.09 KB
/
g_img_path.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
# -*- coding: utf-8 -*-
"""
Created on 2017 10.17
@author: liupeng
"""
import numpy as np
import tensorflow as tf
import numpy as np
import os
# from PIL import Image
import cv2
# 适用于二级目录 。。。/图片类别文件/图片(.png ,jpg等)
def load_img(imgDir,imgFoldName, img_label):
imgs = os.listdir(imgDir+imgFoldName)
imgNum = len(imgs)
data = []
label = []
for i in range (imgNum):
# img_path = imgDir+imgFoldName+"/"+imgs[i]
img_path = imgs[i]
data.append(img_path)
label.append(int(img_label))
return data,label
'''
craterDir = "train/"
foldName = "0male"
data, label = load_Img(craterDir,foldName, 0)
print (data[0].shape)
print (label[0])'''
def load_database(imgDir):
img_path = os.listdir(imgDir)
train_imgs = []
train_labels = []
for i, path in enumerate(img_path):
craterDir = imgDir + '/'
foldName = path
data, label = load_img(craterDir,foldName, i)
train_imgs.extend(data)
train_labels.extend(label)
#打乱数据集
index = [i for i in range(len(train_imgs))]
np.random.shuffle(index)
train_imgs = np.asarray(train_imgs)
train_labels = np.asarray(train_labels)
train_imgs = train_imgs[index]
train_labels = train_labels[index]
return train_imgs, train_labels
def g_txt(train_imgs, train_labels, out_file= 'train.txt'):
f = open(out_file,"w")
img_numbers = len(train_imgs)
for i in range(img_numbers):
img_path = train_imgs[i].split('.')[0]
f.write(img_path) #+ ' ' + str(train_labels[i]))
f.write('\n')
f.close()
def get_next_batch(train_imgs, train_labels, pointer, batch_size=64):
batch_x = np.zeros([batch_size, 224,224,3])
batch_y = np.zeros([batch_size, ])
for i in range(batch_size):
#image = cv2.imread(image_path[i+pointer*batch_size])
#image = cv2.resize(image, (IMAGE_WIDTH, IMAGE_HEIGHT))
#image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
#image = Image.open(image_path[i+pointer*batch_size])
#image = image.resize((IMAGE_WIDTH, IMAGE_HEIGHT))
#image = image.convert('L')
#大神说,转成数组再搞
#image=np.array(image)
#
image = train_imgs[i+pointer*batch_size]
'''
m = image.mean()
s = image.std()
min_s = 1.0/(np.sqrt(image.shape[0]*image.shape[1]))
std = max(min_s, s)
image = (image-m)/std'''
#image = (image-127.5)
batch_x[i,:,:,:] = image
# print labels[i+pointer*batch_size]
batch_y[i] = train_labels[i+pointer*batch_size]
return batch_x, batch_y
def test():
craterDir = "./gender"
# craterDir = "validation"
data, label = load_database(craterDir)
g_txt(data, label)
print (data.shape)
print (len(data))
print (data)
print (label)
#batch_x, batch_y = get_next_batch(data, label, 0)
#print (batch_x)
#print (batch_y)
if __name__ == '__main__':
test()