Script execution
This commit is contained in:
@@ -125,6 +125,16 @@ class ImageStats(DeviceBase):
|
||||
set_device_alias(self.com_y_stdev, name + " com y stdev")
|
||||
self.bg_en = False
|
||||
self.num_images = 5
|
||||
|
||||
class BackgroundSubtractor(Filter):
|
||||
def __init__(self, obj):
|
||||
self.obj=obj
|
||||
def process(self, image, data):
|
||||
if self.obj.background is None:
|
||||
raise Exception("No background captured")
|
||||
return sub(image, self.obj.background, True)
|
||||
self.backgroundFilter = BackgroundSubtractor(self)
|
||||
|
||||
self.initialize()
|
||||
|
||||
#class SourceListener (ImageListener):
|
||||
@@ -167,17 +177,20 @@ class ImageStats(DeviceBase):
|
||||
|
||||
def enableBackground(self, value):
|
||||
self.bg_en = value
|
||||
class BackgroundSubtractor(Filter):
|
||||
def __init__(self, obj):
|
||||
self.obj=obj
|
||||
def process(self, image, data):
|
||||
if self.obj.background is None:
|
||||
return image
|
||||
return sub(image, self.obj.background, True)
|
||||
self.source.filter = BackgroundSubtractor(self) if (value==True) else None
|
||||
self.source.filter = self.backgroundFilter if self.bg_en else None
|
||||
|
||||
def captureBackground(self, images):
|
||||
self.doInitialize()
|
||||
try:
|
||||
self.source.filter = None
|
||||
imgs = []
|
||||
for i in range(images):
|
||||
self.source.waitNext(5000)
|
||||
imgs.append(cam3.output)
|
||||
#TODO:
|
||||
self.background = cam3.output
|
||||
finally:
|
||||
self.enableBackground(self.bg_en)
|
||||
|
||||
|
||||
def doClose(self):
|
||||
print "close"
|
||||
@@ -217,6 +230,8 @@ 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]
|
||||
|
||||
image_stats.captureBackground(5)
|
||||
|
||||
def before_sample():
|
||||
image_stats.update()
|
||||
tscan(sensors, 10, 0.1, before_read = before_sample)
|
||||
|
||||
Reference in New Issue
Block a user