-
Notifications
You must be signed in to change notification settings - Fork 2
/
remove_bad_images.py
78 lines (67 loc) · 2.23 KB
/
remove_bad_images.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
from PIL import Image
import os
import tkinter
from tkinter import Tk, Canvas, PhotoImage
import shutil
import matplotlib.pyplot as plt
import cv2
files = []
count = 0
ORIGINAL = "Images"
OLD = 'OldImages'
execution_path = os.getcwd()
start_working = False
last_location = ''
if last_location == '':
start_working = True
# copy directory tree
# check if it exists
if OLD not in os.listdir(execution_path):
print('creating file tree')
shutil.copytree(src=ORIGINAL, dst=OLD,
ignore=shutil.ignore_patterns('*.jpg'))
else:
print('file tree already created')
# iterate through files and display them
# iterate through each breed
location = execution_path + '/' + ORIGINAL
for current_breed in os.listdir(location):
# iterate over dog photos in breed
print('looking at: ' + current_breed)
image_base_location = location + '/' + current_breed
for filename in os.listdir(image_base_location):
pair = current_breed + '/' + filename
print(current_breed + '/' + filename)
if pair == last_location:
print('at location beggining')
start_working = True
# image?
if filename.endswith(".jpg") and start_working:
# file to work with
image = image_base_location + '/' + filename
# show image
# Image.open(image).show()
# img = cv2.imread(image, cv2.IMREAD_COLOR)
# cv2.imshow('image2', img)
tk = Tk()
canvas = Canvas(tk)
canvas.pack()
img = PhotoImage(Image.open(image))
canvas.create_image((0, 0), img)
# potentially move
while True:
change = input('move (y/n):')
if change == 'y':
backup_loc = image_base_location.replace(
ORIGINAL, OLD) + '/' + filename
shutil.move(image, backup_loc)
print('moved')
break
elif change == 'n':
print('not moving')
break
elif change == 'exit':
print(pair)
exit(1)
else:
print('error y or n')