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 a11005a..648fc62 100644 Binary files a/Code/__pycache__/Farbaenderung.cpython-38.pyc and b/Code/__pycache__/Farbaenderung.cpython-38.pyc differ