From 638fadeb28beaed4478925ac7dc6ecaec9ff4ae3 Mon Sep 17 00:00:00 2001 From: Max Sponsel Date: Thu, 17 Sep 2020 12:23:02 +0200 Subject: [PATCH] Angepasster Daltonizationalgorithmus MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit https://github.com/indranilsinharoy/daltonization/blob/master/daltonize.py Implementierung des gezeigten Algorithmus. Wichtig ist die Int64 Konvertierung , um Überläufe zu verhindern. --- ...ishihara_plate_45_protanopia_daltonize.jpg | Bin 0 -> 19393 bytes Code/Farbaenderung.py | 19 +++++++++++------- 2 files changed, 12 insertions(+), 7 deletions(-) create mode 100644 Beispielbilder/ishihara_plate_45_protanopia_daltonize.jpg diff --git a/Beispielbilder/ishihara_plate_45_protanopia_daltonize.jpg b/Beispielbilder/ishihara_plate_45_protanopia_daltonize.jpg new file mode 100644 index 0000000000000000000000000000000000000000..26317e14ae1eefeb05d0c0fdf8ac1b8248135782 GIT binary patch literal 19393 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