import cv2 as cv import sys import numpy as np import matplotlib.pyplot as plt def safeLoad(pathToFile): ''' OpenCV does no validation checks due to performance reasons. Therefore, this function checks if the image could be loaded ''' img = cv.imread(pathToFile) if img is None: sys.exit("Image could not be loaded.") return img # TODO Aufgabe 1 ''' Passen Sie die Funktion `imageStats(..)` so an, dass sie sowohl Grau- als auch Farbbilder korrekt anzeigt. Erweitern Sie die Funktion zusätzlich so dass der Datentyp mit ausgegeben wird. ''' def imageStats(img): ''' Returns a few image statistics ''' s = img.shape return "Width: {}, Height: {}, Channels: {}, Type: {}".format(s[1], s[0], s[2] if len(s) >= 3 else 1, img[0][0][0].dtype if len(s) >= 3 else img[0][0].dtype) # TODO Aufgabe 1 ''' Passen Sie die Funktion `showImage(..)` so an, dass sie sowohl Grau- als auch Farbbilder korrekt anzeigt. ''' def showImage(title, originalImg): print(imageStats(originalImg)) img = originalImg.copy() plt.figure(title) if len(img.shape) >= 3: img = img[:,:,::-1] plt.imshow(img) else: plt.imshow(img, cmap="gray") plt.show()