import cv2 def enhance_image_for_ai(input_path: str) -> str: """Smooths camera sensor noise and brightens dark areas for vision LLMs.""" img = cv2.imread(input_path) if img is None: return input_path # 1. Remove ISO sensor noise (grain) denoised = cv2.fastNlMeansDenoisingColored(img, None, h=7, hColor=7, templateWindowSize=7, searchWindowSize=21) # 2. Convert to LAB color space for luminance enhancement lab = cv2.cvtColor(denoised, cv2.COLOR_BGR2LAB) l, a, b = cv2.split(lab) # 3. Apply softer CLAHE (lower clipLimit prevents noise amplification) clahe = cv2.createCLAHE(clipLimit=1.8, tileGridSize=(8, 8)) cl = clahe.apply(l) # 4. Merge channels back limg = cv2.merge((cl, a, b)) enhanced = cv2.cvtColor(limg, cv2.COLOR_LAB2BGR) enhanced_path = input_path.replace(".jpg", "_enhanced.jpg") cv2.imwrite(enhanced_path, enhanced, [cv2.IMWRITE_JPEG_QUALITY, 90]) return enhanced_path