def __init__(self, start, end, rate, step_size=50):
     self.start = start
     self.end = end
     self.rate = rate
     now = datetime.datetime.now()
     self.log_direc = "/media/data/Data/Logs/{}_{}_{}_{}_{}/".format(
         now.year, now.month, now.day, now.hour, now.minute)
     try:
         os.mkdir(self.log_direc)
     except FileExistsError as e:
         print(e)
     self.i = 0
     self.shaker = shaker.Shaker()
     self.shaker.change_duty(self.start)
     self.step_size = step_size
     cam_num = camera.guess_camera_number()
     port = STEPPER_CONTROL
     self.ard = arduino.Arduino(port)
     self.motors = stepper.Stepper(self.ard)
     self.motors.move_motor(1, 100, '+')
     self.motors.move_motor(2, 100, '+')
     self.motors.move_motor(1, 100, '-')
     self.motors.move_motor(2, 100, '-')
     self.cam = camera.Camera(cam_num=cam_num)
     im = self.cam.get_frame()
     self.hex, self.center, self.crop, self.mask = self.find_hexagon(im)
     im = images.crop_and_mask(im, self.crop, self.mask)
     self.im_shape = im.shape
     im = images.draw_polygon(im, self.hex)
     im = images.draw_circle(im, self.center[0], self.center[1], 3)
     images.display(im)
 def im(self):
     im = self.cam.get_frame()
     for f in range(10):
         im = self.cam.get_frame()
     im = images.crop_and_mask(im, self.crop, self.mask)
     im = images.bgr_to_gray(im)
     images.save(im, self.log_direc + '{}_original.png'.format(self.i))
     return im
Пример #3
0
 def mean_im(self):
     ims = []
     for f in range(8):
         im = self.cam.get_frame()
         im = images.crop_and_mask(im, self.crop, self.mask)
         im = images.bgr_to_gray(im)
         ims.append(im)
     images.save(ims[0], self.log_direc + '{}_original.png'.format(self.i))
     mean_im = images.mean(ims)
     # mean_im = images.mask(mean_im, ring_mask)
     images.save(mean_im, self.log_direc + '{}_mean.png'.format(self.i))
     return mean_im
Пример #4
0
 def mean_im(self):
     ims = []
     for f in range(8):
         im = ~self.cam.get_frame()
         im = images.crop_and_mask(im, self.crop, self.mask)
         # if f == 0:
         #     ring_mask = images.inrange(images.bgr_to_lab(im), (0, 113, 0),
         #                                (255, 152, 255))
         im = images.bgr_to_gray(im)
         ims.append(im)
     images.save(ims[0], self.log_direc + '{}_original.png'.format(self.i))
     mean_im = images.mean(ims)
     # mean_im = images.mask(mean_im, ring_mask)
     images.save(mean_im, self.log_direc + '{}_mean.png'.format(self.i))
     return mean_im
Пример #5
0
    def __init__(self):
        self.shaker = shaker.Shaker()
        self.shaker.change_duty(600)

        port = STEPPER_CONTROL
        self.ard = arduino.Arduino(port)
        self.motors = stepper.Stepper(self.ard)

        cam_num = camera.guess_camera_number()
        self.cam = camera.Camera(cam_num=cam_num)
        im = self.cam.get_frame()
        self.hex, self.center, self.crop, self.mask = self.find_hexagon(im)
        im = images.crop_and_mask(im, self.crop, self.mask)
        self.im_shape = im.shape
        im = images.draw_polygon(im, self.hex)
        im = images.draw_circle(im, self.center[0], self.center[1], 3)
        images.display(im)
Пример #6
0
def analyse(p1, p2):
    x = []
    t = time.time()
    while (time.time() - t) < 600:
        time.sleep(4)
        try:
            frame = cam.get_frame()
            frame = images.crop_and_mask(frame, crop_result.bbox,
                                         crop_result.mask)
            frame_blurred = images.gaussian_blur(frame, (15, 15))
            red = frame_blurred[:, :, 2] - frame_blurred[:, :, 0]
            circles = images.find_circles(red, 25, 200, 5, 31, 31)
            if circles[0, 0] > circles[1, 0]:
                x.append(circles[1, 0])
                x.append(circles[0, 0])
            else:
                x.append(circles[0, 0])
                x.append(circles[1, 0])
        except:
            pass
    x = np.array(x)
    np.savetxt(f"{data_dir}/x_{p1}_{p2}.txt", x)
    return x
Пример #7
0
 def get_frame(self):
     im = self.cam.get_frame()
     im = images.crop_and_mask(im, self.crop, self.mask)
     im = images.bgr_to_gray(im)
     return im
Пример #8
0
 def get_frame(self):
     frame = self.cam.get_frame()
     frame = images.crop_and_mask(frame, self.crop, self.mask)
     return frame
Пример #9
0
 def get_frame(self, crop=True):
     frame = self.cam.get_frame()
     if crop:
         frame = images.crop_and_mask(frame, self.crop, self.mask)
     return frame
Пример #10
0
import time

data_dir = "/media/data/Data/Orderphobic/TwoIntruders/LevelSampling"
ard = arduino.Arduino(
    "/dev/serial/by-id/usb-Arduino__www.arduino.cc__0043_5573532393535190E022-if00"
)
my_stepper = stepper.Stepper(ard)

my_shaker = shaker.Shaker()
my_shaker.change_duty(600)

cam = camera.Camera(camera.guess_camera_number())
frame = cam.get_frame()
crop_result = images.crop_polygon(frame)
frame = images.crop_and_mask(frame, crop_result.bbox, crop_result.mask)
bins = np.linspace(0, frame.shape[1], 100)
np.savetxt(f"{data_dir}/bins.txt", bins)


def run():
    pos1 = -360
    pos2 = -360
    my_stepper.move_motor(1, 360 * 15, '-')
    time.sleep(90)
    my_stepper.move_motor(2, 360 * 15, '-')
    time.sleep(90)

    for j in range(9):
        for i in range(9):
            print(pos1, pos2)
def fix_frame(frame):
    frame = ndimage.rotate(frame, -120, reshape=False)
    frame = images.crop_and_mask(frame, crop_result.bbox, crop_result.mask)
    return frame
Пример #12
0
def crop_and_mask(frame, parameters):
    mask = parameters['mask image']
    crop = parameters['crop']
    return images.crop_and_mask(frame, crop, mask)