From 31ed0825c383176ce40531020540ed0496ba74c5 Mon Sep 17 00:00:00 2001 From: Max Sponsel Date: Sun, 13 Sep 2020 12:52:49 +0200 Subject: [PATCH] =?UTF-8?q?Weitere=20Anpassungen=20f=C3=BCr=20Tritanopie?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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. --- Code/Dyschromasie.py | 2 +- Code/Farbaenderung.py | 16 +++++++++++----- Code/__pycache__/Farbaenderung.cpython-38.pyc | Bin 2390 -> 2464 bytes 3 files changed, 12 insertions(+), 6 deletions(-) diff --git a/Code/Dyschromasie.py b/Code/Dyschromasie.py index 8fa9d15..790880b 100644 --- a/Code/Dyschromasie.py +++ b/Code/Dyschromasie.py @@ -77,7 +77,7 @@ S_t = np.array([[1, 0, 0], #Simulationsmatrix fuer Tritanopi #Multiplikation der einzelnen Pixel for i in range(rows): for j in range(cols): - cb_image[i,j] = T_reversed.dot(S_p).dot(T).dot(cb_image[i,j]) + cb_image[i,j] = T_reversed.dot(S_t).dot(T).dot(cb_image[i,j]) sim_image = np.copy(cb_image) sim_image = sim_image.astype('uint8') diff --git a/Code/Farbaenderung.py b/Code/Farbaenderung.py index f292d31..d7dd31f 100644 --- a/Code/Farbaenderung.py +++ b/Code/Farbaenderung.py @@ -1,6 +1,7 @@ import numpy as np import cv2 + def gammaCorrection(v): if v <= 0.04045 * 255: return (v / 255) / 12.92 @@ -12,14 +13,17 @@ def reverseGammaCorrection(v_reverse): if abs(v_reverse) <= 0.0031308: return round(255 * (12.92 * abs(v_reverse))) elif abs(v_reverse) > 0.0031308: - return round(255 * (1.055 * abs(v_reverse) ** 0.41666 - 0.055)) + if (round(255 * (1.055 * abs(v_reverse) ** 0.41666 - 0.055))) > 255: + return 255 + else: + return round(255 * (1.055 * abs(v_reverse) ** 0.41666 - 0.055)) class Dyschromasie: cb_image = np.array([]).astype('float64') sim_image = np.array([]).astype('uint8') - def __init__(self, img_mat=np.array([]), rows=0, cols=0, kanaele=0,sim_faktor=0, sim_kind='d'): + def __init__(self, img_mat=np.array([]), rows=0, cols=0, kanaele=0, sim_faktor=0, sim_kind='d'): self.rows = rows self.cols = cols self.kanaele = kanaele @@ -57,10 +61,12 @@ class Dyschromasie: for x in range(3): self.cb_image[i, j, x] = gammaCorrection(self.img_mat[i, j, x]) + rechen_Mat = np.copy(self.T_reversed.dot(sim_mat).dot(self.T)) + print(rechen_Mat) # Einzelne Pixelwertberechnung for i in range(self.rows): for j in range(self.cols): - self.cb_image[i, j] = self.T_reversed.dot(sim_mat).dot(self.T).dot(self.cb_image[i, j]) + self.cb_image[i, j] = rechen_Mat.dot(self.cb_image[i, j]) self.sim_image = np.copy(self.cb_image) self.sim_image = self.sim_image.astype('uint8') @@ -70,6 +76,6 @@ class Dyschromasie: for x in range(3): self.sim_image[i, j, x] = reverseGammaCorrection(self.cb_image[i, j, x]) + print(self.img_mat[78, 86]) + print(self.sim_image[78, 86]) return self.sim_image - - diff --git a/Code/__pycache__/Farbaenderung.cpython-38.pyc b/Code/__pycache__/Farbaenderung.cpython-38.pyc index a11005a8754af9f8e27ec936cbf016cfb57a517b..648fc6225abea2c6e06a051f47057a850f2cb516 100644 GIT binary patch delta 436 zcmXw#y-or_5XX0x+q>mF4ix-=#*e5G3bnG)#00H08jO*G#9Yurjmcmz-{N=z#PAEp{S; z$s=`kzVHaGyf>_*^*|6Sfp-$VYR85opVaLBIL0(VMMNkUku>%n=8SlYV2uyd3(Cj0 ziNkC&%)$;rN{lGVB3$G8 EKOh)p0ssI2 delta 343 zcmZ1=d`*Zil$V!_0SGu>#m3L%-pE(Q$jCCelTn}1XYx))Jw}hoJWSn!+&~4z93W+k zJd7ehym<}NTt-H*$zCkC_*sF%AUS6sF8;;1*_c(5QJ15JA&aw_(S;$_t(K_-#Nz_< zOlp~dY@P+YHH-@xfh0o~-$KU8-E8uTdJ`B66-pQvumHu_7c$l`#Pb7L{0rDpcp<#W zr`a^U1wgVjOf}3kENRS=49!4wS^O}*4Fk}O6+k=(i2F(efpV-Vd>~bf3}7BVj0e&+ z*`7U~O#|rYmop|WVNa6aEY8f0&&*9sPc7mBir!)^D9X$$(PW)0$00u1kwcPA4dg+) m$q5`