|
|
@@ -53,7 +53,8 @@ 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(self.sim_mat).dot(self.T).dot(np.flipud(self.cb_image[i, j])))
|
|
|
|
self.cb_image[i, j] = np.flipud(
|
|
|
|
self.T_reversed.dot(self.sim_mat).dot(self.T).dot(np.flipud(self.cb_image[i, j])))
|
|
|
|
|
|
|
|
self.sim_image = np.copy(self.cb_image)
|
|
|
|
self.sim_image = self.sim_image.astype('uint8')
|
|
|
@@ -83,7 +84,8 @@ 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(self.sim_mat).dot(self.T).dot(np.flipud(self.cb_image[i, j])))
|
|
|
|
self.cb_image[i, j] = np.flipud(
|
|
|
|
self.T_reversed.dot(self.sim_mat).dot(self.T).dot(np.flipud(self.cb_image[i, j])))
|
|
|
|
|
|
|
|
self.sim_image = np.copy(self.cb_image)
|
|
|
|
self.sim_image = self.sim_image.astype('uint8')
|
|
|
@@ -112,7 +114,8 @@ 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(self.sim_mat).dot(self.T).dot(np.flipud(self.cb_image[i, j])))
|
|
|
|
self.cb_image[i, j] = np.flipud(
|
|
|
|
self.T_reversed.dot(self.sim_mat).dot(self.T).dot(np.flipud(self.cb_image[i, j])))
|
|
|
|
|
|
|
|
self.sim_image = np.copy(self.cb_image)
|
|
|
|
self.sim_image = self.sim_image.astype('uint8')
|
|
|
@@ -124,6 +127,7 @@ class Tritanopie(Dyschromasie): |
|
|
|
self.sim_image[i, j, x] = self.reverseGammaCorrection(self.cb_image[i, j, x])
|
|
|
|
return self.sim_image
|
|
|
|
|
|
|
|
|
|
|
|
root = tk.Tk()
|
|
|
|
root.title("Projekt Dyschromasie")
|
|
|
|
|
|
|
@@ -132,9 +136,13 @@ rows = 0 |
|
|
|
cols = 0
|
|
|
|
kanaele = 0
|
|
|
|
|
|
|
|
sim_pro = tk.IntVar(root)
|
|
|
|
sim_deut = tk.IntVar(root)
|
|
|
|
sim_tri = tk.IntVar(root)
|
|
|
|
sim_pro = tk.IntVar(root)
|
|
|
|
sim_deut = tk.IntVar(root)
|
|
|
|
sim_tri = tk.IntVar(root)
|
|
|
|
simGrad = tk.IntVar(root)
|
|
|
|
|
|
|
|
simulationsGradient = tk.Scale(root, from_=0, to_=100, variable=simGrad, orient='horizontal')
|
|
|
|
simulationsGradient.grid(column= 0, row = 1, columnspan=10)
|
|
|
|
|
|
|
|
def browse():
|
|
|
|
# Auswahl des FilePaths
|
|
|
@@ -166,9 +174,9 @@ def simulate(): |
|
|
|
d = Deuteranopie(img, rows, cols, kanaele)
|
|
|
|
display_array_deut = cv2.cvtColor(np.copy(d.Simulate()), cv2.COLOR_BGR2RGB)
|
|
|
|
|
|
|
|
T = tk.Text(root,height=1,width=15)
|
|
|
|
T = tk.Text(root, height=1, width=15)
|
|
|
|
T.grid(columnspan=5)
|
|
|
|
T.insert('current',"Deutranopie:")
|
|
|
|
T.insert('current', "Deutranopie:")
|
|
|
|
|
|
|
|
conv_SimulationPic_deut = ImageTk.PhotoImage(image=PIL.Image.fromarray(display_array_deut))
|
|
|
|
sim_pic_deut = tk.Label(root, image=conv_SimulationPic_deut)
|
|
|
@@ -200,20 +208,19 @@ def simulate(): |
|
|
|
sim_pic_pro.grid(columnspan=5)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
btn = tk.Button(root, text="Browse", width=25, command=browse, bg='light blue')
|
|
|
|
btn.grid(column = 0, row = 0,columnspan=2)
|
|
|
|
btn.grid(column=0, row=0, columnspan=2)
|
|
|
|
|
|
|
|
simulateButton = tk.Button(root, text="Simulate", width=25, command=simulate, bg='light blue')
|
|
|
|
simulateButton.grid(column = 1, row = 0,columnspan=2)
|
|
|
|
simulateButton.grid(column=1, row=0, columnspan=2)
|
|
|
|
simulateButton.config(state='disabled')
|
|
|
|
|
|
|
|
checkButton_p = tk.Checkbutton(root, text="Protanop", variable=sim_pro, onvalue=1, offvalue=0, height=5, width=20)
|
|
|
|
checkButton_d = tk.Checkbutton(root, text="Deutanop", variable=sim_deut, onvalue=1, offvalue=0, height=5, width=20)
|
|
|
|
checkButton_t = tk.Checkbutton(root, text="Tritanop", variable=sim_tri, onvalue=1, offvalue=0, height=5, width=20)
|
|
|
|
|
|
|
|
checkButton_p.grid(column = 0, row = 1)
|
|
|
|
checkButton_d.grid(column = 1, row = 1)
|
|
|
|
checkButton_t.grid(column = 2, row = 1)
|
|
|
|
checkButton_p.grid(column=0, row=2)
|
|
|
|
checkButton_d.grid(column=1, row=2)
|
|
|
|
checkButton_t.grid(column=2, row=2)
|
|
|
|
|
|
|
|
root.mainloop()
|