-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathcreateimdb.txt
106 lines (80 loc) · 3.22 KB
/
createimdb.txt
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
if __name__ == '__main__':
dir_list = ["./ViolenceDataset/video/Violence/", "./ViolenceDataset/video/NonViolence/"]
dir_list_out = ["./ViolenceDataset/image/Violence/", "./ViolenceDataset/image/NonViolence/"]
for k, src in enumerate(dir_list):
video_list = os.listdir(src)
i = 1
for video in video_list:
video = dir_list[k] + video
vidcap = cv.VideoCapture(video)
#first read
success, image = vidcap.read()
count = 0
base = os.path.basename(video)
vname = os.path.splitext(base)[0]
prev_gray = cv.cvtColor(image, cv.COLOR_BGR2GRAY)
savepath = ""
while success:
count = count+1
success, image = vidcap.read()
if (success == False):
break
gray = cv.cvtColor(image, cv.COLOR_BGR2GRAY)
(score, diff) = compare_ssim(prev_gray, gray, full=True)
diff = (diff * 255).astype("uint8")
if (score < 0.85):
savepath = dir_list_out[k] + vname + "frame%05d.jpg" % count
cv.imwrite(savepath, image) # save frame as JPEG file
prev_gray = gray
count += 1
///////////////////////////////////////////////////////////////////////////////
def main():
parser = argparse.ArgumentParser(description='image splite to train and validate for training ')
parser.add_argument('--infolder', type=str, help='image folder path ')
parser.add_argument('--classname', type=str, help='splite class name')
parser.add_argument('--step', type=int, help='step for loop')
parser.add_argument('--maxsample', type=int, help='max train data count')
args = parser.parse_args()
infolder = args.infolder
classname = args.classname
step = args.step
maxval = args.maxsample
traindir = "train/" + classname + "/"
validationdir = "validation/" + classname + "/"
try:
os.makedirs(traindir)
except OSError as e:
if e.errno != errno.EEXIST:
raise
try:
os.makedirs(validationdir)
except OSError as e:
if e.errno != errno.EEXIST:
raise
fileset = [file for file in glob.glob(infolder + "**/*.jpg", recursive=True)]
count = len(fileset)
i = 0
k = 0
for file in fileset:
if i % step == 0:
print(file)
fname = os.path.basename(file)
if k % 10 == 0: #test
destination_file = validationdir + fname
else:#train
destination_file = traindir + fname
try:
srcimg = cv2.imread(file)
dstimg = cv2.resize(srcimg, (224, 224), interpolation=cv2.INTER_CUBIC)
cv2.imwrite(destination_file, dstimg)
#copyfile(file, destination_file)
except:
pass
k = k + 1
if k >= maxval:
break
i = i + 1
progress(i, count, status='processing')
print("\nTask Completed")
if __name__== "__main__":
main()