File: C:/xampp/htdocs/FograCT1/CurveFixing.py
import cv2
import numpy as np
# Step 1: Read the file
with open('rgb.txt', 'r') as file:
content = file.read().strip()
# Step 2: Split the content by comma
fr, fg, fb, filename = content.split(',')
# Step 3: Convert RGB values to integers
fr = int(fr)
fg = int(fg)
fb = int(fb)
# Now you have the variables
print(f"Red: {fr}, Green: {fg}, Blue: {fb}, Filename: {filename}")
def create_lut(curve_points):
lut = np.arange(256, dtype=np.uint8)
x = list(curve_points.keys())
y = list(curve_points.values())
for i in range(256):
lut[i] = np.interp(i, x, y)
return lut
def apply_curves(image, curve_r, curve_g, curve_b):
lut_r = create_lut(curve_r)
lut_g = create_lut(curve_g)
lut_b = create_lut(curve_b)
# Split image into channels
r, g, b = cv2.split(image)
# Apply LUTs to each channel
r = cv2.LUT(r, lut_r)
g = cv2.LUT(g, lut_g)
b = cv2.LUT(b, lut_b)
# Merge channels back
return cv2.merge((r, g, b))
# Define curve points
curve_b = {0: 0, 139: fr, 255: 255}
curve_g = {0: 0, 139: fg, 255: 255}
curve_r = {0: 0, 139: fb, 255: 255}
# Read input image
#img = cv2.imread('G7RGB.jpg')
img = cv2.imread(filename)
# Apply curve adjustments
adjusted_img = apply_curves(img, curve_r, curve_g, curve_b)
# Save the output image
cv2.imwrite('fix-'+filename, adjusted_img)