File size: 1,842 Bytes
930647e
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
import os
import numpy as np
import cv2

# Function to apply the blending step
def render(img_rgb):
    img_gray = cv2.cvtColor(img_rgb, cv2.COLOR_BGR2GRAY)
    img_blur = cv2.GaussianBlur(img_gray, (21, 21), 0, 0)  # Gaussian Blur for smoothening
    img_blend = cv2.divide(img_gray, img_blur, scale=256)  # Blend grayscale with blurred version
    return img_blend

# Function to apply gamma correction
def adjust_gamma(image, gamma=1.0):
    invGamma = 1.0 / gamma
    table = np.array([((i / 255.0) ** invGamma) * 255 for i in np.arange(0, 256)]).astype("uint8")
    return cv2.LUT(image, table)

# Paths for the input and output folders
input_folder = "input_images"  # Replace with your input folder path
output_folder = "output_images"  # Replace with your output folder path

# Create the output folder if it doesn't exist
os.makedirs(output_folder, exist_ok=True)

# Loop through all images in the input folder
for filename in os.listdir(input_folder):
    if filename.lower().endswith(('.png', '.jpg', '.jpeg', '.bmp', '.tiff', '.tif')):  # Check for valid image extensions
        input_image_path = os.path.join(input_folder, filename)
        output_image_path = os.path.join(output_folder, f"processed_{filename}")

        # Read the input image
        image_array = cv2.imread(input_image_path)

        if image_array is not None:  # Check if the image was read correctly
            # Apply the CAT process
            img_blend = render(image_array)
            img_gamma = adjust_gamma(img_blend, gamma=.001)  # Adjust gamma for better contrast

            # Save the processed image
            cv2.imwrite(output_image_path, img_gamma)
            print(f"Processed image saved: {output_image_path}")
        else:
            print(f"Failed to process image: {input_image_path}")

print("Batch processing complete!")