-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathbinary_transformer.py
70 lines (55 loc) · 2.39 KB
/
binary_transformer.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
from validation.validator import validate as validate
from preprocessor.preproccesor import preprocess_image_test
import os
from PIL import Image
def remove_wrong_images(folder):
removed = 0
for directive in os.listdir(folder):
for img in os.listdir(folder + directive):
file_path = folder + directive + "/" + img
if os.path.getsize(file_path) < 50:
os.remove(file_path)
removed += 1
return removed
def create_folders(input_folder, output_folder):
for directive in os.listdir(input_folder):
if not os.path.exists(output_folder + directive):
os.makedirs(output_folder + directive)
print("created:", directive)
def create_grayscaled_for_folder(input_folder, output_folder):
cropped = 0
not_cropped = 0
amt_opened = 0
amt_validated = 0
for directive in os.listdir(input_folder):
for img in os.listdir(input_folder + directive):
file_path = input_folder + directive + "/" + img
image = Image.open(file_path)
validated_image = validate(image)
amt_opened += 1
if validated_image.is_valid is True:
amt_validated += 1
if validated_image.is_valid is True:
cropped_image = preprocess_image_test(file_path, validated_image.circle_center)
if cropped_image is not None:
try:
cropped_image.save(output_folder + directive + "/" + str(img))
cropped += 1
except:
print("error")
else:
not_cropped += 1
return cropped, not_cropped, amt_opened, amt_validated
input_folder = "test_data/new_test_images_separated/"
output_folder = "test_data/disasterfolder/"
# Create directives if they do not exist with the same name in the output folder for the grayscaled images.
create_folders(input_folder, output_folder)
# Create a grayscaled image for every image in the folder training_images.
cropped_yes, cropped_no, amt_opened, amt_validated = create_grayscaled_for_folder(input_folder, output_folder)
# Removes wrongly cropped images
removed = remove_wrong_images(output_folder)
print("Cropped:", cropped_yes)
print("Not cropped:", cropped_no)
print("Removed:", removed)
print("Amount opened:", amt_opened)
print("amount validated:", amt_validated)