Commit Graph
49 Commits
Author SHA1 Message Date
Max Sponsel 137ca981f2 Einfügen eines Dalt-Buttons in die GUI
Zum Aufrufen des Algorithmus in der GUI muss ein Button Objekt der tkinter Klasse erstellt werden. Dieses wird erst nach einem erfolgreich ausgewählten Bild aktiv! Als nächstes steht die Implementation der daltonize-Funktion an, die durch command='daltonize' ausgeführt wird.
2020-09-18 11:40:40 +02:00
Max Sponsel 8498500c68 Daltonization in die Klasse eingefügt
Funktion der Daltonization in die Klasse Dyschromasie eingefügt.
2020-09-18 10:58:28 +02:00
Max Sponsel 638fadeb28 Angepasster Daltonizationalgorithmus
https://github.com/indranilsinharoy/daltonization/blob/master/daltonize.py

Implementierung des gezeigten Algorithmus. Wichtig ist die Int64 Konvertierung , um Überläufe zu verhindern.
2020-09-17 12:23:02 +02:00
Max Sponsel b78f3c2908 Erster Daltonizationalgorithmus 2020-09-17 11:41:00 +02:00
Max Sponsel 804bc74885 Lookup-Table für die Entfrenung der Gamma Korrektur implementiert
Zur Besseren Performance wird eine Lookup Table benötigt. Diese gleicht dynamisch alles Werte ab anstatt bei jedem einzelnen Pixelwert die Berechnung durchzuführen.
2020-09-15 11:51:22 +02:00
Max Sponsel 105b6689b8 Gaussian Blur entfernt 2020-09-14 10:42:36 +02:00
Max Sponsel 250cf3fd32 Import angepasst 2020-09-14 10:22:52 +02:00
Max Sponsel fd0161e320 Genauere Berechnung der Oberen Werte
Änderung des Return-Wertes auf 255 - dem Delta zwischen Übersteuerung und dem Maximialwert zur besseren Farbdarstellung
2020-09-14 10:21:33 +02:00
Max Sponsel 1cc63c6a30 Entfernen der Print Befehle für's Debugging 2020-09-13 12:56:46 +02:00
Max Sponsel 0795db1f96 Merge remote-tracking branch 'origin/master' 2020-09-13 12:53:51 +02:00
Max Sponsel 31ed0825c3 Weitere Anpassungen für Tritanopie
Anders als bei den anderen Fehlsichtigkeiten ist ein Überlauf des Wertebereichs möglich. Somit werden Werte, die 255 überschreiten standardmäßig auf diesen Maximalwert gesetzt.
2020-09-13 12:53:35 +02:00
Max Sponsel ff420dc77c Weitere Anpassungen für Tritanopie
Anders als bei den anderen Fehlsichtigkeiten ist ein Überlauf des Wertebereichs möglich. Somit werden Werte, die 255 überschreiten standardmäßig auf diesen Maximalwert gesetzt.
2020-09-13 12:52:49 +02:00
Max Sponsel 9b76b10e32 Lösung des Aliasing Problems
Betrachtung des Pixels (40,152) im Fall Tree Bild ergab die Lösung für das Aliasing:
Bei negativen Werten in der Matrix T^1*sim_mat*T ergeben sich Überläufe. Lösung durch Anpassen der GammaKorrektur auf Abstände statt Absolutwerte.
2020-09-13 11:51:17 +02:00
Max Sponsel d5252ea2be Weiter CodeCleanup 2020-09-12 11:52:40 +02:00
Max Sponsel 30d0e61ca7 Auslagern der Scrollbar-Funktion und Einfügen von Beispielbildern 2020-09-12 11:45:49 +02:00
Max Sponsel f176685f0b Beispielbild aus Paper hinzugefügt 2020-09-11 17:35:34 +02:00
Max Sponsel 98e6b56bd3 CodeCleanup
Funktionen ausgelagert und drei Farbarten zu einer großen Klasse zusammengefasst
2020-09-10 14:44:29 +02:00
Max Sponsel 08881f47cf Vereinfachung des Codes mit cv2.cvtColor
Statt das Array doppelt mit der flipud Funktion zu spiegeln, wird es direkt im Einleseprozess von BGR(OpenCV) zu RGB(Pillow und Algorithmus) konvertiert.
2020-09-10 11:34:04 +02:00
Max Sponsel e62ea2a23e Anpassung des Print Befehls
Ausgabe des Bildes erfolgt nun auch mit der Stärke der Farbblindheitssimulation (von 0 bis 100%)
2020-09-07 10:47:17 +02:00
Max Sponsel a1ebdb827c Abschwächung der Simulationsstärke
Durch Anpassungen in den Simulationsmatrizen ergeben sich Abschwächungsmuster. Somit können für verschiedene Probanden unterschiedliche Stärken der Sehschwäche simuliert werden.
2020-09-04 11:59:25 +02:00
Max Sponsel 9980f03bdd Dynamische vertikale und horizontale Scrollbar
Durch Hilfe von Stack Overflow wurde eine dynamische Scrollbar implementiert. Diese erscheint je nach Windowgröße dynamisch. 
(siehe hierzu: https://stackoverflow.com/questions/47008899/tkinter-dynamic-scrollbar-for-a-dynamic-gui-not-updating-with-gui)
2020-08-29 10:10:11 +02:00
Max Sponsel 62b16b4a96 Erste Tests mit Slider und Umwandlungsfunktion
Erste Funktionen in den Klassen implementiert; Erste Test gemacht. Ergebnisse noch nicht zufriedenstellend. Auch Implementierung einer Scrollbar nötig!!
2020-08-25 10:45:12 +02:00
Max Sponsel bbc3aafeb3 Merge remote-tracking branch 'origin/master' 2020-08-25 09:40:33 +02:00
Max Sponsel da88618ce6 Einfügen eines Sliders
Um den Grad der Faarbblindheit korrekt zu Simulieren, muss ein Widget eingebaut werden, welches den prozentualen Anteil der Differenz zwischen Simulation und echtem Wert vergleicht und mit dem ausgewählten Wert (z. B. 80%) neu gewichtet.
2020-08-25 09:40:27 +02:00
Max Sponsel f1348cfef2 Einfügen eines Sliders
Um den Grad der Faarbblindheit korrekt zu Simulieren, muss ein Widget eingebaut werden, welches den prozentualen Anteil der Differenz zwischen Simulation und echtem Wert vergleicht und mit dem ausgewählten Wert (z. B. 80%) neu gewichtet.
2020-08-25 09:40:16 +02:00
Max Sponsel d1cd073fde Merge remote-tracking branch 'origin/master' 2020-08-21 11:23:26 +02:00
Max Sponsel 8c4760c75d Kommentar entfernt 2020-08-15 09:18:51 +02:00
Max Sponsel 28325c408e Algorithmusanpassung
Nutzung der Built-in Funktion der Farbkonvertierung von OpenCV statt ständiger, doppelter Drehung im Algorithmus. Effizienter und schneller!
2020-08-15 08:31:33 +02:00
Max Sponsel dad7554c71 Pillow Import
Einbauen des Imports von Pillow für das Graphical Interface. Installation über: pip install pillow
2020-08-14 18:03:43 +02:00
Max Sponsel 74759f92b5 Kommentar zur Berechnung eingefügt 2020-07-11 09:42:55 +02:00
Max Sponsel 12dd773020 Korrektur des Algorithmus
Durch die NumPy Funktion numpy.flipud konnte das RGB Array umgedreht, der Algorithmus des Papers angewendet und schließlich eine Rücktransformation der RGB Werte stattfinden. Die erhaltenen Bilder entsprechen nun den Erwartungen.
2020-07-11 09:40:29 +02:00
Max Sponsel 871715bbad Merge remote-tracking branch 'origin/master' 2020-07-09 16:06:51 +02:00
Max Sponsel 1165dc1e21 Fehler im Algorithmus gefunden
Anders als im Paper werden die RGB Werte nicht in der Reihenfolge Rot Grün Blau (RGB), sondern in OpenCV als Blau grün rot (BGR) abgespeichert.
Also ist ein e Funktion zum "Umdrehen" der Matrix nötig!
2020-07-09 16:06:27 +02:00
Max Sponsel e7eead37ee Fehler im Algorithmus gefunden
Anders als im Paper werden die RGB Werte nicht in der Reihenfolge Rot Grün Blau (RGB), sondern in OpenCV als Blau grün rot (BGR) abgespeichert.
Also ist ein e Funktion zum "Umdrehen" der Matrix nötig!
2020-07-09 16:06:12 +02:00
Max Sponsel 899580b119 Kleine Anpassungen an den Interpretierer 2020-07-04 10:54:05 +02:00
Max Sponsel d7cb8c293e Anpassung der Bildveränderung
Trotz Anpassungen sind noch einige Verbesserungen nötig: Grauanteile, wo keine sein sollten treten auf. Die Berechnungsalgorithmen müssen überprüft werden.
2020-06-27 11:24:07 +02:00
Max Sponsel 2a4e394165 Erste Logik zur Bildänderung
Matrixmultiplikation und Gamma-Rücktransformation angewendet
2020-06-27 10:54:20 +02:00
Max Sponsel c3d4a04017 Simulationsmatrizen der einzelnen Fehlsichtigkeiten implementiert
Simulationsmatrizen fuer Protanopie, Deuteranopie und Tritanopie hinzugefügt.
2020-06-27 10:40:18 +02:00
Max Sponsel 7c4a08521f Multiplikation mit der Transformationsmatrix T
Implementiert über 2 for-Schleifen und der numpy.dot() Funktion
2020-06-26 12:59:09 +02:00
Max Sponsel bb625895a0 Gammakorrektur für Bildarray
Kopie unseres Bildarrays wurde erstellt und auf floats gecastet. Bereinigte Werte können jetzt mit der Transformationsmatrix T multipliziert werden!!
2020-06-26 12:45:14 +02:00
Max Sponsel 4c80771315 Iteration durch das Bildarray
Anpassungen müssen noch gemacht werden!
2020-06-26 12:43:21 +02:00
Max Sponsel 24ab0a1f85 Einfügen der allgemeinen Tranformationsmatrix T und der Inversen T^-1
Zwar hatten wir bereits die M_HPE und M_sRGB eincodiert, jedoch lassen sich beide Matrizen mit Multiplikation bereits zusammenfassen, was den Code übersichtlicher macht. Zudem reicht nach Gammakorrektur nun eine Matrixmultiplikation für die komplette Konvertierung aus!
2020-06-26 11:01:46 +02:00
Max Sponsel 18623a2e01 Einfügen der Gammakorrekturen als Funktionen
Vor der eigentlichen Anwendung des Algorithmus müssen die Gammakorrekturwerte gefiltert und vor der Darstellung des bearbeiteten Bildes wieder hinzugefügt werden.
2020-06-26 09:58:43 +02:00
Max Sponsel 92a0f9e03c Transformationsmatrixen hinzufügen
Verschiedene Matrizen zur Bildänderung hinzugefügt
2020-06-22 12:22:51 +02:00
Max Sponsel 2653f8c7f6 Anpassung des Bildeinlesens
Bildverzeichnis jetzt dynamisch zugreifbar. Mergeproblem sollte gelöst sein.
2020-06-22 11:46:32 +02:00
Max Sponsel 85be54ab1f Imported Numpy 2020-06-17 15:59:55 +02:00
Max Sponsel 4ee972c1e5 Auslesen der Bilddimensionen 2020-06-17 10:47:09 +02:00
Max Sponsel fd2c587bbc Erste Einleselogik Implementiert 2020-06-09 16:16:37 +02:00
Max Sponsel 451ffb36cd Imports added 2020-06-09 15:56:34 +02:00