From 0557e2521b8e01f6110e0405444b9d0625038651 Mon Sep 17 00:00:00 2001 From: Donavon Mcdowell Date: Wed, 25 Jan 2023 10:19:25 -0700 Subject: [PATCH] first commit --- photoSort2.py | 122 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 122 insertions(+) create mode 100644 photoSort2.py diff --git a/photoSort2.py b/photoSort2.py new file mode 100644 index 0000000..9240cf1 --- /dev/null +++ b/photoSort2.py @@ -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)) \ No newline at end of file