From b6a104148d50ea38ca2270e1682ea6735ef4a6e1 Mon Sep 17 00:00:00 2001 From: gac-S_Changer Date: Thu, 17 Nov 2016 12:20:47 +0100 Subject: [PATCH] Script execution --- script/LedDetection.py | 43 +++++++++++++++++++++++++++--------------- 1 file changed, 28 insertions(+), 15 deletions(-) diff --git a/script/LedDetection.py b/script/LedDetection.py index 4739301..4c15dc8 100644 --- a/script/LedDetection.py +++ b/script/LedDetection.py @@ -22,7 +22,9 @@ def detect_led(ip): roi_center = (2322, 1025) roi_radius = 1000 -integrations = 10 +integration_count = 5 +integration_continuous = False +integration_partial = False frames = [] @@ -78,17 +80,24 @@ def integrate (ips): op_const(aux, "divide", len(ips), in_place=True) return aux +last_ret = (None, None) - -def detect_led(ip, integrations): - global roi_center, roi_radius +def detect_led(ip): + global roi_center, roi_radius, integration_count, integration_continuous, integration_partial, frames + global count , last_ret aux = sub_image(ip, roi_center[0] - roi_radius, roi_center[1] - roi_radius, 2* roi_radius, 2*roi_radius) grayscale(aux) - if (integrations>1): - frames.append(aux) - if len(frames) >integrations: - del frames[0] + if (integration_count>1): + frames.append(aux) + if len(frames) >integration_count: + del frames[0] + if not integration_continuous: + if (len(frames)< integration_count): + if last_ret[1] is not None: invert(last_ret[1]) + return last_ret + if (not integration_partial) and len(frames) > sys.stderr, 'Invalid location:' + str(r.getValue("XM", row)) + ", " + str( r.getValue("YM", row)) print >> sys.stderr, r.getRowAsString(row) - #return (results,aux) + #return (results,aux) + last_ret = (results,output) + if not integration_continuous: + frames = [] return (results,output) @@ -120,12 +132,13 @@ def detect_led(ip, integrations): class MyFilter(Filter): def process(self, image, data): - global roi_center, roi_radius, frames, integrations + global roi_center, roi_radius ip = load_image(image) - (results,output) = detect_led(ip, integrations) - invert(output) - output = pad_image(output, roi_center[0] - roi_radius, 0, roi_center[1] - roi_radius, 0) - op_image(ip, output, "xor") + (results,output) = detect_led(ip) + if output is not None: + invert(output) + output = pad_image(output, roi_center[0] - roi_radius, 0, roi_center[1] - roi_radius, 0) + op_image(ip, output, "xor") return ip.getBufferedImage() #Setting the filter to a source