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.
This commit is contained in:
Max Sponsel 2020-09-10 11:34:04 +02:00
parent e62ea2a23e
commit 08881f47cf

View File

@ -49,6 +49,7 @@ class Protanopie(Dyschromasie):
# Gammakorrektur durchfuehren
self.cb_image = np.copy(self.img_mat).astype('float64')
for i in range(self.rows):
for j in range(self.cols):
for x in range(3):
@ -57,12 +58,10 @@ class Protanopie(Dyschromasie):
# Einzelne Pixelwertberechnung
for i in range(self.rows):
for j in range(self.cols):
self.cb_image[i, j] = np.flipud(
self.T_reversed.dot(sim_mat).dot(self.T).dot(np.flipud(self.cb_image[i, j])))
self.cb_image[i, j] = self.T_reversed.dot(sim_mat).dot(self.T).dot(self.cb_image[i, j])
self.sim_image = np.copy(self.cb_image)
self.sim_image = self.sim_image.astype('uint8')
# Rücktransformation der Gammawerte
for i in range(self.rows):
for j in range(self.cols):
@ -89,8 +88,7 @@ class Deuteranopie(Dyschromasie):
# Einzelne Pixelwertberechnung
for i in range(self.rows):
for j in range(self.cols):
self.cb_image[i, j] = np.flipud(
self.T_reversed.dot(sim_mat).dot(self.T).dot(np.flipud(self.cb_image[i, j])))
self.cb_image[i, j] = self.T_reversed.dot(sim_mat).dot(self.T).dot(self.cb_image[i, j])
self.sim_image = np.copy(self.cb_image)
self.sim_image = self.sim_image.astype('uint8')
@ -121,8 +119,7 @@ class Tritanopie(Dyschromasie):
# Einzelne Pixelwertberechnung
for i in range(self.rows):
for j in range(self.cols):
self.cb_image[i, j] = np.flipud(
self.T_reversed.dot(sim_mat).dot(self.T).dot(np.flipud(self.cb_image[i, j])))
self.cb_image[i, j] = self.T_reversed.dot(sim_mat).dot(self.T).dot(self.cb_image[i, j])
self.sim_image = np.copy(self.cb_image)
self.sim_image = self.sim_image.astype('uint8')
@ -229,6 +226,7 @@ def browse():
# Einspeichern der Path-Informationen
global img, rows, cols, kanaele
img = cv2.imread(path)
img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
rows, cols, kanaele = img.shape
@ -236,7 +234,7 @@ def simulate():
global img, rows, cols, kanaele, sim_pro, sim_deut, sim_tri
if sim_deut.get():
d = Deuteranopie(img, rows, cols, kanaele, simGrad.get()/100)
display_array_deut = cv2.cvtColor(np.copy(d.Simulate()), cv2.COLOR_BGR2RGB)
display_array_deut = d.Simulate()
T = tk.Text(SB.frame, height=1, width=15)
T.grid(columnspan=5)
@ -249,7 +247,7 @@ def simulate():
sim_pic_deut.grid(columnspan=5)
elif sim_tri.get():
t = Tritanopie(img, rows, cols, kanaele, simGrad.get()/100)
display_array_tri = cv2.cvtColor(np.copy(t.Simulate()), cv2.COLOR_BGR2RGB)
display_array_tri = t.Simulate()
T = tk.Text(SB.frame, height=1, width=15)
T.grid(columnspan=5)
@ -262,7 +260,7 @@ def simulate():
sim_pic_tri.grid(columnspan=5)
elif sim_pro.get():
p = Protanopie(img, rows, cols, kanaele, simGrad.get()/100)
display_array_pro = cv2.cvtColor(np.copy(p.Simulate()), cv2.COLOR_BGR2RGB)
display_array_pro = p.Simulate()
T = tk.Text(SB.frame, height=1, width=15)
T.grid(columnspan=5)