|
|
|
|
|
|
|
|
# Einlesen des Bildes
|
|
|
# Einlesen des Bildes
|
|
|
script_dir = sys.path[0]
|
|
|
script_dir = sys.path[0]
|
|
|
path = script_dir[:-4] + "Beispielbilder\grocery_store.jpg"
|
|
|
path = script_dir[:-4] + "Beispielbilder\grocery_store.jpg"
|
|
|
image = cv2.imread(path) # Einlesen des Bildes (noch hardcodiert, sollte dann in GUI gehen)
|
|
|
|
|
|
|
|
|
image = cv2.cvtColor(cv2.imread(path),cv2.COLOR_BGR2RGB) # Einlesen des Bildes (noch hardcodiert, sollte dann in GUI gehen)
|
|
|
|
|
|
|
|
|
rows = image.shape[0] # Auslesen der Zeilenanzahl
|
|
|
rows = image.shape[0] # Auslesen der Zeilenanzahl
|
|
|
cols = image.shape[1] # Auslesen der Spaltenanzahl
|
|
|
cols = image.shape[1] # Auslesen der Spaltenanzahl
|
|
|
|
|
|
|
|
|
#Multiplikation der einzelnen Pixel
|
|
|
#Multiplikation der einzelnen Pixel
|
|
|
for i in range(rows):
|
|
|
for i in range(rows):
|
|
|
for j in range(cols):
|
|
|
for j in range(cols):
|
|
|
cb_image[i,j] = np.flipud(T_reversed.dot(S_p).dot(T).dot(np.flipud(cb_image[i,j])))
|
|
|
|
|
|
|
|
|
cb_image[i,j] = T_reversed.dot(S_p).dot(T).dot(cb_image[i,j])
|
|
|
# Da OpenCV Pixelwerte in RGB speichert, aber BGR für den Algorithmus nötig ist, muss die Matrix mit flipud gedreht werden
|
|
|
# Da OpenCV Pixelwerte in RGB speichert, aber BGR für den Algorithmus nötig ist, muss die Matrix mit flipud gedreht werden
|
|
|
|
|
|
|
|
|
sim_image = np.copy(cb_image)
|
|
|
sim_image = np.copy(cb_image)
|
|
|
|
|
|
|
|
|
sim_image[i, j, x] = reverseGammaCorrection(cb_image[i, j, x])
|
|
|
sim_image[i, j, x] = reverseGammaCorrection(cb_image[i, j, x])
|
|
|
|
|
|
|
|
|
cv2.namedWindow("Display") # Displaywindow erstellen
|
|
|
cv2.namedWindow("Display") # Displaywindow erstellen
|
|
|
cv2.imshow("Display", sim_image) # Bild zeigen
|
|
|
|
|
|
|
|
|
cv2.imshow("Display", cv2.cvtColor(sim_image,cv2.COLOR_RGB2BGR)) # Bild zeigen
|
|
|
cv2.waitKey(0) # Fenster offen halten
|
|
|
cv2.waitKey(0) # Fenster offen halten
|