diff --git a/CV-App/algorithms/invis_cloak.py b/CV-App/algorithms/invis_cloak.py index 4c64649..c3367d1 100644 --- a/CV-App/algorithms/invis_cloak.py +++ b/CV-App/algorithms/invis_cloak.py @@ -1,11 +1,10 @@ -import cv2 +import cv2, datetime, os import numpy as np from copy import deepcopy from matplotlib import pyplot as plt from . import Algorithm - class InvisCloak (Algorithm): """ init function """ @@ -20,6 +19,15 @@ class InvisCloak (Algorithm): # Includes noice reduction and histogram spread self.middle_value_picture = None + # Clean up results folder + folder_path = os.path.join("results") + + for filename in os.listdir(folder_path): + file_path = os.path.join(folder_path, filename) + + if os.path.isfile(file_path): + os.unlink(file_path) + """ Processes the input image""" def process(self, img): @@ -38,12 +46,12 @@ class InvisCloak (Algorithm): """ 2.2 Farbanalyse """ """ 2.2.1 RGB """ - self._221_RGB(img) + #self._221_RGB(img) """ 2.2.2 HSV """ - self._222_HSV(img) + #self._222_HSV(img) - """ 2.3 Segmentierung und Bildmdifikation """ + """ 2.3 Segmentierung und Bildmodifikation """ img = self._23_SegmentUndBildmodifizierung(img) return img @@ -53,6 +61,14 @@ class InvisCloak (Algorithm): if event == cv2.EVENT_LBUTTONUP: print("A Mouse click happend! at position", x, y) + # Stores the current image to data folder + cv2.imwrite(f"results/{datetime.datetime.now().strftime('%Y-%m-%d_%H:%M:%S')}_captured_image.png", + self.picture_buffer[4]) + + # Create RGB histogram + self._221_RGB(self.middle_value_picture) + + def _plotNoise(self, img, name:str): height, width = np.array(img.shape[:2]) centY = (height / 2).astype(int) @@ -112,12 +128,21 @@ class InvisCloak (Algorithm): return self.middle_value_picture - def _221_RGB(self, img): + def _221_RGB(self, img, colorspectrum = "bgr"): """ Hier steht Ihr Code zu Aufgabe 2.2.1 (RGB) - Histogrammberechnung und Analyse """ - pass + # Names of the color spectrums + channels = ["b", "g", "r"] + + for index, channel_name in enumerate(channels): + hist = cv2.calcHist([img], [index], None, [256], [0, 256]) + plt.plot(hist, color=channel_name) + plt.xlim([0, 256]) + + plt.savefig(f"results/{datetime.datetime.now().strftime('%Y-%m-%d_%H:%M:%S')}_histogram_{colorspectrum}.png") + plt.clf() def _222_HSV(self, img):