56 Commits

Author SHA1 Message Date
Max Sponsel
a206147edf Dalt Algorithmus und Auslagern des Displays
Der Dalt Algorithmus wird nun von dem Dalt-Button ausgeführt. Gleichzeitig wurde die Funktion showImage geschrieben, um Code zu verschlanken und lediglich die Switchfunktionen simulate und daltonize für die Auswahl der Simulationsart zu nutzen.
PS: Mehrere Bilder zum Testen eingefügt
2020-09-19 10:44:07 +02:00
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
3b5798b143 Verschiedene Testreihen zur Abschwächung sowie die Grundidee mit Formelanpassung 2020-09-04 10:01:05 +00: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
3ee51d0be4 Applikation zur Simulation der verschiedenen Fehlsichtigkeiten
Nachdem nun die Theorie hinter der Simulation geklärt ist, wenden wir uns jetzt dem Applikationbau zu.
2020-08-21 09:23:03 +00: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
4d54aa9d3c Bild, welches im technical Paper verwendet wurde
---
2020-06-27 08:57:56 +00: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