From 157979283d89db60853edfd680112ff414d8e039 Mon Sep 17 00:00:00 2001 From: sfop Date: Mon, 29 May 2017 11:29:02 +0200 Subject: [PATCH] Script execution --- script/Devices/ImageStats.py | 40 ++++++++++++++++++++++++------------ 1 file changed, 27 insertions(+), 13 deletions(-) diff --git a/script/Devices/ImageStats.py b/script/Devices/ImageStats.py index 2cb86f4..3bec385 100644 --- a/script/Devices/ImageStats.py +++ b/script/Devices/ImageStats.py @@ -6,6 +6,7 @@ import java.awt.Color as Color import random import ch.psi.pshell.imaging.ImageListener as ImageListener from operator import add, mul, sub, truediv +from ch.psi.pshell.imaging.Utils import * def arrmul(a, b): """Multiply 2 series of the same size. @@ -127,25 +128,27 @@ class ImageStats(DeviceBase): self.num_images = 5 self.initialize() - class SourceListener (ImageListener): - def __init__(self, dev): - self.dev=dev - def onImage(self, origin, image, data): - self.dev.doUpdate() - def onError(self, origin, ex): - self.dev.com_x_samples, self.dev.com_y_samples = [], [] - self.rms_x_samples, self.rms_y_samples = [], [] - self.listener = SourceListener(self) - self.source.addListener(self.listener) + #class SourceListener (ImageListener): + # def __init__(self, dev): + # self.dev=dev + # def onImage(self, origin, image, data): + # self.dev.doUpdate() + # def onError(self, origin, ex): + # self.dev.com_x_samples, self.dev.com_y_samples = [], [] + # self.rms_x_samples, self.rms_y_samples = [], [] + #self.listener = SourceListener(self) + #self.source.addListener(self.listener) def doUpdate(self): - print "Do update" + #print "Do update" self.com_x_samples, self.com_y_samples = [], [] self.rms_x_samples, self.rms_y_samples = [], [] for i in range(self.num_images): if type(self.source) is not ch.psi.pshell.imaging.FileSource: self.source.waitNext(5000) + #time.sleep(0.2) + #print "Ok" #centroid = get_centroid(self.source) #print "cent ", centroid #if centroid is not None: @@ -165,13 +168,19 @@ class ImageStats(DeviceBase): def enableBackground(self, value): self.bg_en = value + class BackgroundSubtractor(Filter): + def process(self, image, data): + image = sobel(image) + return image + self.source.filter = BackgroundSubtractor() def captureBackground(self, images): self.doInitialize() def doClose(self): print "close" - self.source.removeListener(self.listener) + self.source.filter = None + #self.source.removeListener(self.listener) def start(self): pass @@ -189,6 +198,8 @@ def get_simulated_source(img): return simulated_source + + if __name__ == "__builtin__": #simulated_source = get_simulated_source(image) #print get_centroid(simulated_source) @@ -203,4 +214,7 @@ if __name__ == "__builtin__": image_stats.setNumberOfImages(3) sensors = [image_stats.com_x_mean, image_stats.com_y_mean, image_stats.com_x_stdev, image_stats.com_y_stdev] - tscan(sensors, 10, 0.1) + + def before_sample(): + image_stats.update() + tscan(sensors, 10, 1.0, before_read = before_sample)