From 9781b4b503ebcbc7b4a7dec9f3c3a678cd1c59b2 Mon Sep 17 00:00:00 2001 From: Joel Steffens <joel.steffens@stud.hs-bochum.de> Date: Tue, 23 May 2023 17:33:54 +0200 Subject: [PATCH] =?UTF-8?q?Filtereinstellungen=20und=20Multi-Diff-Filter?= =?UTF-8?q?=20hinzugef=C3=BCgt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Filter/IMG_23_05_2023_17_16_31.png | Bin 0 -> 8418 bytes Filter/IMG_23_05_2023_17_26_27.png | Bin 0 -> 6987 bytes Filter/IMG_23_05_2023_17_32_16.png | Bin 0 -> 7668 bytes filter_pipeline.py | 14 ++++++++----- filters.py | 31 +++++++++++++++++++++++++++-- 5 files changed, 38 insertions(+), 7 deletions(-) create mode 100644 Filter/IMG_23_05_2023_17_16_31.png create mode 100644 Filter/IMG_23_05_2023_17_26_27.png create mode 100644 Filter/IMG_23_05_2023_17_32_16.png diff --git a/Filter/IMG_23_05_2023_17_16_31.png b/Filter/IMG_23_05_2023_17_16_31.png new file mode 100644 index 0000000000000000000000000000000000000000..491007e4433cc27327fedb0af6cfba6f6fe8244d GIT binary patch literal 8418 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 literal 0 HcmV?d00001 diff --git a/Filter/IMG_23_05_2023_17_26_27.png b/Filter/IMG_23_05_2023_17_26_27.png new file mode 100644 index 0000000000000000000000000000000000000000..451667bb69242f5c119c764d3d6fda3ff8561646 GIT binary patch literal 6987 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 U_cd%b0|Nttr>mdKI;Vst0P-mfG5`Po literal 0 HcmV?d00001 diff --git a/Filter/IMG_23_05_2023_17_32_16.png b/Filter/IMG_23_05_2023_17_32_16.png new file mode 100644 index 0000000000000000000000000000000000000000..2a71bd5eab336e954f0b998de6543b52b084e651 GIT binary patch literal 7668 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 literal 0 HcmV?d00001 diff --git a/filter_pipeline.py b/filter_pipeline.py index c44ffcd..1c22f6f 100644 --- a/filter_pipeline.py +++ b/filter_pipeline.py @@ -7,7 +7,7 @@ import pandas as pd VIDEO = 'Videomaterial/WIN_20230414_13_41_55_Pro.mp4' capture = cv2.VideoCapture(VIDEO) - +capture.set(cv2.CAP_PROP_POS_FRAMES, 30 * 40) # skip 40 seconds last = None frame = None @@ -39,14 +39,16 @@ def nothing_cb(val): # To control the Size of the Disply cv2.namedWindow(window, cv2.WINDOW_AUTOSIZE) -cv2.createTrackbar('Line Threshold: ', window, line_threshold, 100, nothing_cb) +cv2.createTrackbar('Canny_Min', window, 50, 255, nothing_cb) +cv2.createTrackbar('Canny_Max', window, 100, 255, nothing_cb) +cv2.createTrackbar('Diff_Mix', window, 40, 100, nothing_cb) import filters pipeline = [ ('Original', filters.none), ('Gray scale', filters.grayscale), ('Contrast and Blur', filters.medianBlur), - ('Video Diff', filters.video_absdiff), + ('Video Diff Multiple', filters.video_absdiff2), ('Canny edge detection', filters.filter_canny), ('Morph close', filters.filter_close), #('Morph open', filters.filter_open), @@ -57,7 +59,7 @@ pipeline = [ state = {} # Empty dictionary to store filters state info = { - 'abs_diff': 5, # 5 images for difference, + 'abs_diff': 3, # 3 images for difference, 'dim': (1920, 1080), # 'params': {} } @@ -71,7 +73,9 @@ while capture.isOpened(): frame, _ = filters.resize(None, frame, None) # Apply - info['params']['line'] = cv2.getTrackbarPos('Line Threshold: ', window) + info['params']['mix'] = cv2.getTrackbarPos('Diff_Mix', window) / 100.0 + info['params']['canny_min'] = cv2.getTrackbarPos('Canny_Min', window) + info['params']['canny_max'] = cv2.getTrackbarPos('Canny_Max', window) result = frame for i, (name, filter) in enumerate(pipeline): diff --git a/filters.py b/filters.py index af1770a..35e4929 100644 --- a/filters.py +++ b/filters.py @@ -2,6 +2,9 @@ import cv2 as cv import numpy as np import pandas as pd +from collections import deque + + def none(info, image, state): return image, False @@ -73,10 +76,13 @@ def polyfit(n_list): return None -min_threshold = 30 -max_threshold = 110 +min_threshold = 30 +max_threshold = 110 def filter_canny(info, image, state): + min_threshold = info['params']['canny_min'] + max_threshold = info['params']['canny_max'] + image = cv.Canny(image, min_threshold, max_threshold) return image, False @@ -99,6 +105,9 @@ def filter_close(info, image, state): def points_extract(info, image, state): points = find_points(image) + if points is None: + return None, False + overlay = np.zeros((image.shape[0], image.shape[1], 3), np.uint8) for y, x in points: @@ -151,6 +160,24 @@ def filter_all(info, image, state): cv.polylines(overlay, [points], False, (255, 0, 0), thickness=6) return overlay, True +def video_absdiff2(info, image, state): + if 'buffer' not in state: + state['buffer'] = deque(maxlen=info['abs_diff']) + + buffer = state['buffer'] + mix = info['params']['mix'] + + buffer.append(image) + if len(buffer) >= 2: + diff = np.zeros((image.shape[0], image.shape[1], 1), np.uint8) + for i in range(0, len(buffer) - 1): + diff_frame = cv.absdiff(buffer[i], buffer[i+1]) # Difference + diff = cv.addWeighted(diff, 1.0, diff_frame, 1.0 - mix, 0.0) + + return diff, False + else: + return None, False + def video_absdiff(info, image, state): if 'last' not in state or state['last'] is None: -- GitLab