first commit
This commit is contained in:
commit
0557e2521b
122
photoSort2.py
Normal file
122
photoSort2.py
Normal file
@ -0,0 +1,122 @@
|
||||
##Made by Donavon McDowell
|
||||
##A script used to sort through a large set of images and get rid of any bad ones aswell as put the new ones in a folder that contains only good images
|
||||
|
||||
## Read through the root file
|
||||
## Open each file representing each month
|
||||
## Open both Spillway and Toe Berm folder
|
||||
## Read each individual image
|
||||
## Get rid of any that are taken after dark
|
||||
##Bad times 0600 and 1800 are dark
|
||||
|
||||
|
||||
import os
|
||||
import shutil
|
||||
import cv2
|
||||
|
||||
##The folder that contains your unsorted images
|
||||
folder_dir = "C:/Users/donav/OneDrive/Documents/MPE/images/AllSpillway"
|
||||
##The desitination folder
|
||||
base_folder_dir = "C:/Users/donav/OneDrive/Documents/MPE"
|
||||
##Destination Folder Name
|
||||
destination_folder_name = "Spillway Verified Images"
|
||||
##Reject Folder Name
|
||||
reject_destination_folder_name = "Spillway Rejected Images"
|
||||
|
||||
##Max brightness threshold
|
||||
max_threshold = 190
|
||||
##Min brightness threshold
|
||||
min_threshold = 55
|
||||
|
||||
##Used for counting
|
||||
global i
|
||||
i = 0
|
||||
##Used for counting
|
||||
global x
|
||||
x = 0
|
||||
|
||||
##Increment through folders
|
||||
def checkFiles():
|
||||
global x
|
||||
##increment through the files in the folder
|
||||
for files in os.listdir():
|
||||
verifyImage(files)
|
||||
x = x + 1
|
||||
##Create the output folder to copy all of the files to
|
||||
def createDestinationFolders():
|
||||
##Create the good destination folder
|
||||
path = os.path.join(base_folder_dir, destination_folder_name)
|
||||
try:
|
||||
##Check if the folder exists or not
|
||||
if(os.path.exists(path)):
|
||||
print("Folder already exists.")
|
||||
os.remove(path)
|
||||
os.mkdir(path)
|
||||
print('Verified folder created!\n')
|
||||
print('File Path \"' + path + '\"')
|
||||
else:
|
||||
os.mkdir(path)
|
||||
print('Verified folder created!\n')
|
||||
print('File Path \"' + path + '\"')
|
||||
except OSError as error:
|
||||
print(error)
|
||||
##Create the reject destination folder
|
||||
path = os.path.join(base_folder_dir, reject_destination_folder_name)
|
||||
try:
|
||||
if(os.path.exists(path)):
|
||||
print("Folder already exists.")
|
||||
os.remove(path)
|
||||
os.mkdir(path)
|
||||
print('Verified folder created!\n')
|
||||
print('File Path \"' + path + '\"')
|
||||
else:
|
||||
os.mkdir(path)
|
||||
print('Reject folder created!\n')
|
||||
print('File Path \"' + path + '\"')
|
||||
except OSError as error:
|
||||
print(error)
|
||||
##Change back to the default directory
|
||||
os.chdir(folder_dir)
|
||||
|
||||
##Check that the image is good
|
||||
def verifyImage(filename):
|
||||
global i
|
||||
if (('0700' not in filename) and ('0600' not in filename) and ('1800' not in filename)) and check_brightness(os.path.join(folder_dir, filename), min_threshold, max_threshold):
|
||||
##Copy file to verified output folder
|
||||
src = os.path.join(folder_dir, filename)
|
||||
dstn = base_folder_dir + '/' + destination_folder_name + '/' + filename
|
||||
##Copy the verified file to the output folder
|
||||
shutil.copy(src, dstn)
|
||||
else:
|
||||
##reject file
|
||||
print("Reject Detected. #" + str(i))
|
||||
i = i + 1
|
||||
##Copy file to reject output folder
|
||||
src = os.path.join(folder_dir, filename)
|
||||
dstn = base_folder_dir + '/' + reject_destination_folder_name + '/' + filename
|
||||
##Copy the verified file to the output folder
|
||||
shutil.copy(src, dstn)
|
||||
|
||||
##Check the image brightness
|
||||
def check_brightness(image_file, min, max):
|
||||
# Load the image
|
||||
img = cv2.imread(image_file)
|
||||
|
||||
# Convert the image to grayscale
|
||||
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
|
||||
|
||||
# Calculate the average brightness
|
||||
avg_brightness = gray.mean()
|
||||
print(avg_brightness)
|
||||
# Check if the average brightness is above or below the threshold
|
||||
if (avg_brightness > min) and (avg_brightness < max) :
|
||||
return True
|
||||
else:
|
||||
|
||||
return False
|
||||
|
||||
##Step 1: Create output folder
|
||||
createDestinationFolders()
|
||||
##Step 2: Look through all existing folders
|
||||
checkFiles()
|
||||
print("Processing Complete.")
|
||||
print("Total number of files processed: " + str(x))
|
Loading…
Reference in New Issue
Block a user