def handleNewFrame(self, new_frame): sliced_data = self.sliceFrame(new_frame) self.newFrame.emit(frame.Frame(sliced_data, new_frame.frame_number, self.x_pixels, self.y_pixels, self.camera_name))
def run(self): # Pause a random amount of time on start. time.sleep(random.expovariate(1.0/self.pause_time)) self.running = True self.thread_started = True while(self.running): aframe = frame.Frame(numpy.roll(self.fake_frame, int(self.frame_number * self.parameters.get("roll"))), self.frame_number, self.fake_frame_size[0], self.fake_frame_size[1], self.camera_name) self.frame_number += 1 if self.film_length is not None: if (self.frame_number == self.film_length): self.running = False # Emit new data signal. self.newData.emit([aframe]) # Sleep if we're still running. if self.running: self.msleep(int(1000.0 * self.parameters.get("exposure_time")))
def handleNewFrame(self, new_frame): sliced_data = self.sliceFrame(new_frame) if (new_frame.frame_number % self.cycle_length) in self.capture_frames: self.newFrame.emit( frame.Frame(sliced_data, self.frame_number, self.x_pixels, self.y_pixels, self.camera_name)) self.frame_number += 1
def handleNewFrame(self, new_frame): sliced_data = self.sliceFrame(new_frame) if self.average_frame is None: self.average_frame = sliced_data.astype(numpy.uint32) else: self.average_frame += sliced_data self.counts += 1 if (self.counts == self.frames_to_average): average_frame = self.average_frame / self.frames_to_average self.newFrame.emit( frame.Frame(average_frame.astype(numpy.uint16), self.frame_number, self.x_pixels, self.y_pixels, self.camera_name)) self.average_frame = None self.counts = 0 self.frame_number += 1
def run(self): self.running = True self.thread_started = True while (self.running): aframe = frame.Frame( numpy.roll( self.fake_frame, int(self.frame_number * self.parameters.get("roll"))), self.frame_number, self.fake_frame_size[0], self.fake_frame_size[1], self.camera_name) self.frame_number += 1 if self.film_length is not None: if (self.frame_number == self.film_length): self.running = False # Emit new data signal. self.newData.emit([aframe]) self.msleep(int(1000.0 * self.parameters.get("exposure_time")))
def run(self): # # Note: The order is important here, we need to start the camera and # only then set self.running. Otherwise HAL might think the # camera is running when it is not. # self.camera.startAcquisition() self.running = True self.thread_started = True while(self.running): # Get data from camera and create frame objects. self.camera_mutex.lock() [frames, frame_size] = self.camera.getFrames() self.camera_mutex.unlock() # Check if we got new frame data. if (len(frames) > 0): # Create frame objects. frame_data = [] for cam_frame in frames: aframe = frame.Frame(cam_frame.getData(), self.frame_number, frame_size[0], frame_size[1], self.camera_name) frame_data.append(aframe) self.frame_number += 1 if self.film_length is not None: if (self.frame_number == self.film_length): self.running = False # Emit new data signal. self.newData.emit(frame_data) self.msleep(5) self.camera.stopAcquisition()
# # Testing # if (__name__ == "__main__"): import numpy import time import storm_control.hal4000.camera.frame as frame image_x = 512 image_y = 512 aframe = frame.Frame(numpy.ones((image_x, image_y), dtype=numpy.uint16), 0, image_x, image_y, "camera1", True) repeats = 200 start = time.time() for i in range(repeats): imageGradient(aframe) end = time.time() print("Time to process an image: ", ((end - start) / repeats), " seconds") # # The MIT License # # Copyright (c) 2013 Zhuang Lab, Harvard University # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal
# testing if (__name__ == "__main__"): import storm_control.hal4000.camera.frame as frame import numpy import time initialize() image_x = 1024 image_y = 1024 a_frame = frame.Frame(numpy.ones((image_x, image_y), dtype=numpy.uint16), 0, image_x, image_y, "na") repeats = 100 start = time.time() for i in range(repeats): [x, y, n] = findObjects(a_frame, 100) if ((i % 10) == 0): print(i, n) end = time.time() print("Time to process an image: ", ((end - start) / repeats), " seconds") # # The MIT License # # Copyright (c) 2013 Zhuang Lab, Harvard University #