Spaces:
Sleeping
Sleeping
File size: 1,894 Bytes
2c91766 |
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 |
import os
import shutil
from PIL import Image
def colors_within_tolerance(color1, color2, tolerance):
return all(abs(c1 - c2) <= tolerance for c1, c2 in zip(color1, color2))
def check_border_colors(image_path, tolerance):
# Open the image
image = Image.open(image_path)
pixels = image.load()
width, height = image.size
# Get the color of the first pixel on the left and right borders
left_border_color = pixels[0, 0]
right_border_color = pixels[width - 1, 0]
# Check the left border
for y in range(height):
if not colors_within_tolerance(pixels[0, y], left_border_color, tolerance):
return False
# Check the right border
for y in range(height):
if not colors_within_tolerance(pixels[width - 1, y], right_border_color, tolerance):
return False
return True
def process_images(input_folder, output_folder_same, output_folder_different, tolerance):
# Ensure output directories exist
os.makedirs(output_folder_same, exist_ok=True)
os.makedirs(output_folder_different, exist_ok=True)
for filename in os.listdir(input_folder):
if filename.lower().endswith(('.png', '.jpg', '.jpeg', '.bmp', '.gif')):
image_path = os.path.join(input_folder, filename)
if check_border_colors(image_path, tolerance):
shutil.copy(image_path, os.path.join(output_folder_same, filename))
else:
shutil.copy(image_path, os.path.join(output_folder_different, filename))
# Example usage
input_folder = 'D:\Ardha\Kerja\AISensum\ROX\Task 1'
output_folder_same = 'D:\Ardha\Kerja\AISensum\ROX\Task 1\warna_sama'
output_folder_different = 'D:\Ardha\Kerja\AISensum\ROX\Task 1\warna_berbeda'
tolerance = 50 # Adjust the tolerance value as needed
process_images(input_folder, output_folder_same, output_folder_different, tolerance)
|