From c1aaeba4f514a123e1c56108a48d16aac4fe46f7 Mon Sep 17 00:00:00 2001 From: sfop Date: Thu, 18 Aug 2016 16:30:51 +0200 Subject: [PATCH] Script execution --- script/ImageStats.py | 63 +++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 60 insertions(+), 3 deletions(-) diff --git a/script/ImageStats.py b/script/ImageStats.py index 8116625..39c0581 100644 --- a/script/ImageStats.py +++ b/script/ImageStats.py @@ -27,7 +27,64 @@ def get_centroid(source): ov = Crosshairs(Pen(java.awt.Color.ORANGE), java.awt.Point(int(centroid[0]),int(centroid[1])), java.awt.Dimension(15,15)) op.addOverlay(ov) return centroid - - -get_centroid(image) + + + +class ImageStats(DeviceBase): + def __init__(self, name, source): + DeviceBase.__init__(self, source.getName() + " stats") + self.com_x_samples, self.com_y_samples = [], [] + class ComX(Readable): + def read(self): + return mean(self.image_stats.com_x_samples) + self.com_x_mean = ComX(); self.com_x_mean.image_stats = self + class ComY(Readable): + def read(self): + return mean(self.image_stats.com_y_samples) + self.com_y_mean = ComY(); self.com_y_mean.image_stats = self + class ComXVar(Readable): + def read(self): + return stdev(self.image_stats.com_x_samples) + self.com_x_stdev = ComXVar(); self.com_x_stdev.image_stats = self + class ComXVar(Readable): + def read(self): + return stdev(self.image_stats.com_y_samples) + self.com_y_stdev = ComXVar(); self.com_y_stdev.image_stats = self + set_device_alias(self.com_x_mean, name + " com x mean") + set_device_alias(self.com_y_mean, name + " com y mean") + set_device_alias(self.com_x_stdev, name + " com x stdev") + set_device_alias(self.com_y_stdev, name + " com y stdev") + self.bg_en = False + self.num_images = 1 + self.initialize() + + + def doUpdate(self): + self.com_x_samples, self.com_y_samples = [], [] + for i in range(self.num_images): + self.waitNext(2000) + self.com_x_samples.append(self.com_x.read()) + self.com_y_samples.append(self.com_y.read()) + + def setNumberOfImages(self, value): + self.num_images = value + + def enableBackground(self, value): + self.bg_en = value + + def captureBackground(self, images): + self.doInitialize() + + def doClose(self): + pass + +if __name__ == "__builtin__": + print get_centroid(image) + + add_device(ImageStats("image_stats", image), True) + image_stats.enableBackground(False) + for i in range (100): + image_stats.update() + print camera_tool.take(), camera_tool.com_x.read(), camera_tool.com_y.read() +