diff --git a/media/Schnappix_Test/Option_7_Nur_Entrauscht.jpg b/media/Schnappix_Test/Option_7_Nur_Entrauscht.jpg new file mode 100644 index 0000000..07a39df Binary files /dev/null and b/media/Schnappix_Test/Option_7_Nur_Entrauscht.jpg differ diff --git a/media/Schnappix_Test/Option_8_Entrauscht_und_Opt1.jpg b/media/Schnappix_Test/Option_8_Entrauscht_und_Opt1.jpg new file mode 100644 index 0000000..56f7224 Binary files /dev/null and b/media/Schnappix_Test/Option_8_Entrauscht_und_Opt1.jpg differ diff --git a/media/Schnappix_Test/Option_9_Entrauscht_Opt1_Scharf.jpg b/media/Schnappix_Test/Option_9_Entrauscht_Opt1_Scharf.jpg new file mode 100644 index 0000000..925cc6d Binary files /dev/null and b/media/Schnappix_Test/Option_9_Entrauscht_Opt1_Scharf.jpg differ diff --git a/test_enhancements_3.py b/test_enhancements_3.py new file mode 100644 index 0000000..c72e30b --- /dev/null +++ b/test_enhancements_3.py @@ -0,0 +1,70 @@ +import os +import cv2 +import numpy as np +from PIL import Image, ImageOps, ImageEnhance + +BASE_DIR = os.path.dirname(os.path.abspath(__file__)) +INPUT_FILE = os.path.join(BASE_DIR, 'media', 'Schnappix', 'HochzeitNeleTill_2026-09-19_21-10-30_Raw.jpg') +TEST_DIR = os.path.join(BASE_DIR, 'media', 'Schnappix_Test') + +if not os.path.exists(TEST_DIR): + os.makedirs(TEST_DIR) + +def apply_denoising(input_path, h_val=12): + """Liest das Bild und wendet den OpenCV Denoising-Algorithmus an""" + img = cv2.imread(input_path) + # fastNlMeansDenoisingColored ist hervorragend gegen ISO-Rauschen (Körnung) + # h_val bestimmt die Stärke der Entrauschung + denoised = cv2.fastNlMeansDenoisingColored(img, None, h=h_val, hColor=h_val, templateWindowSize=7, searchWindowSize=21) + + # Zurück zu PIL Format für weitere Bearbeitung + denoised_rgb = cv2.cvtColor(denoised, cv2.COLOR_BGR2RGB) + return Image.fromarray(denoised_rgb) + +def test_option_7_nur_entrauscht(input_path, output_path): + """Option 7: Nur stark entrauscht, um den Effekt zu zeigen + minimale Aufhellung""" + try: + pil_img = apply_denoising(input_path, h_val=15) + # Nur minimal aufhellen, damit es nicht zu dunkel wirkt + img = ImageEnhance.Brightness(pil_img).enhance(1.1) + img.save(output_path, quality=95) + except Exception as e: + print(f"Fehler Option 7: {e}") + +def test_option_8_entrauscht_plus_opt1(input_path, output_path): + """Option 8: Entrauscht (mittlere Stärke) + Option 1 (AutoKontrast & Farbe)""" + try: + pil_img = apply_denoising(input_path, h_val=12) + # Auto-Kontrast (wie Option 1) + img_auto = ImageOps.autocontrast(pil_img, cutoff=1) + # Farbe anheben (wie Option 1) + img_final = ImageEnhance.Color(img_auto).enhance(1.2) + + img_final.save(output_path, quality=95) + except Exception as e: + print(f"Fehler Option 8: {e}") + +def test_option_9_entrauscht_scharf(input_path, output_path): + """Option 9: Entrauscht + Option 1 + nachgeschärft (da Entrauschen etwas weich macht)""" + try: + pil_img = apply_denoising(input_path, h_val=12) + img_auto = ImageOps.autocontrast(pil_img, cutoff=1) + img_color = ImageEnhance.Color(img_auto).enhance(1.2) + + # Schärfen + img_final = ImageEnhance.Sharpness(img_color).enhance(1.5) + + img_final.save(output_path, quality=95) + except Exception as e: + print(f"Fehler Option 9: {e}") + +if __name__ == '__main__': + if os.path.exists(INPUT_FILE): + print("Erstelle Test-Varianten 7 bis 9 (Entrauschung)...") + print("Hinweis: Denoising ist rechenintensiv, das kann ein paar Sekunden dauern.") + test_option_7_nur_entrauscht(INPUT_FILE, os.path.join(TEST_DIR, 'Option_7_Nur_Entrauscht.jpg')) + test_option_8_entrauscht_plus_opt1(INPUT_FILE, os.path.join(TEST_DIR, 'Option_8_Entrauscht_und_Opt1.jpg')) + test_option_9_entrauscht_scharf(INPUT_FILE, os.path.join(TEST_DIR, 'Option_9_Entrauscht_Opt1_Scharf.jpg')) + print("Neue Varianten (Anti-Rauschen) erstellt!") + else: + print(f"Datei nicht gefunden: {INPUT_FILE}")