diff --git a/threshold.py b/threshold.py new file mode 100644 index 0000000..6c6f405 --- /dev/null +++ b/threshold.py @@ -0,0 +1,54 @@ +import cv2 +import numpy as np +import os +from matplotlib import pyplot as plt + +# Function to process each image +def process_image(image_path, output_folder): + image = cv2.imread(image_path) + + # Convert BGR to RGB + image_rgb = cv2.cvtColor(image, cv2.COLOR_BGR2RGB) + + # Define color range + lower_bound = np.array([50, 70, 30], dtype=np.uint8) + upper_bound = np.array([150, 255, 150], dtype=np.uint8) + + # Create mask + mask = cv2.inRange(image_rgb, lower_bound, upper_bound) + + # Create an output + output_image = np.zeros_like(image_rgb) + output_image[mask != 0] = (255, 255, 255) + + # Convert to grayscale + output_gray = cv2.cvtColor(output_image, cv2.COLOR_RGB2GRAY) + + # Convert grayscale image to binary + _, binary = cv2.threshold(output_gray, 1, 255, cv2.THRESH_BINARY) + + # Define output filename + filename = os.path.splitext(os.path.basename(image_path))[0] + output_filename = f"{filename}_green_yellow.png" + output_path = os.path.join(output_folder, output_filename) + + # Save processed image + cv2.imwrite(output_path, binary) + print(f"Processed: {image_path} -> {output_path}") + +# Function to process all images in folder +def process_images_in_folder(input_folder, output_folder): + os.makedirs(output_folder, exist_ok=True) + + # Loop through images in the input folder + for filename in os.listdir(input_folder): + if filename.lower().endswith((".jpg", ".jpeg", ".png")): + image_path = os.path.join(input_folder, filename) + process_image(image_path, output_folder) + +# Set input and output folders +input_folder = "in" +output_folder = "out" + +# Run the processing +process_images_in_folder(input_folder, output_folder) \ No newline at end of file