def find_center(self, im):
     im0 = im.copy()
     im = images.threshold(im, 80)
     im = images.opening(im, (6, 6))
     center = images.center_of_mass(im)
     im0 = images.gray_to_bgr(im0)
     im0 = images.draw_circle(im0, center[0], center[1], 5)
     im = images.gray_to_bgr(im)
     im = images.draw_circle(im, center[0], center[1], 5)
     images.save(images.hstack(im, im0),
                 self.log_direc + '{}.png'.format(self.i))
     self.i += 1
     return center
 def annotate_image(self, im, current_center, mean_center, distance,
                    centers):
     im = im.copy()
     if images.depth(im) != 3:
         im = images.gray_to_bgr(im)
     im = images.draw_circle(im,
                             current_center[0],
                             current_center[1],
                             5,
                             color=images.ORANGE,
                             thickness=-1)
     im = images.draw_circle(im, self.center[0], self.center[1], 5,
                             images.RED)
     im = images.draw_circle(im, mean_center[0], mean_center[1], 5,
                             images.BLUE)
     font = cv2.FONT_HERSHEY_SIMPLEX
     im = cv2.putText(im, 'Tray Center', (10, 30), font, .5, images.RED, 2,
                      cv2.LINE_AA)
     im = cv2.putText(im, 'Current Center', (10, 60), font, .5,
                      images.ORANGE, 2, cv2.LINE_AA)
     im = cv2.putText(im, 'Mean Center', (10, 90), font, .5, images.BLUE, 2,
                      cv2.LINE_AA)
     im = cv2.putText(im, 'Pixel distance : {:.3f}'.format(distance),
                      (10, 120), font, .5, images.GREEN, 2, cv2.LINE_AA)
     im = cv2.putText(im, 'Repeat: {}'.format(self.f), (10, 150), font, .5,
                      images.GREEN, 2, cv2.LINE_AA)
     for center in centers:
         im = images.draw_circle(im, center[0], center[1], 5, images.YELLOW)
     im = cv2.putText(im, 'Old Centers', (10, 180), font, .5, images.YELLOW,
                      2, cv2.LINE_AA)
     return im
    def find_center(self, im):
        im0 = im.copy()
        im = images.gaussian_blur(im, (5, 5))
        circles = trackpy.locate(im, 5)
        center = circles[['x', 'y']].values.mean(axis=0)

        im0 = images.gray_to_bgr(im0)
        im0 = images.draw_circle(im0, center[0], center[1], 5)
        im1 = images.gray_to_bgr(im)
        im1 = images.draw_circle(im1, center[0], center[1], 5)
        im2 = images.gray_to_bgr(im)
        im2 = images.draw_circles(im2, circles[['x', 'y', 'size']].values)
        images.save(images.hstack(im1, im0, im2),
                    self.log_direc + '{}.png'.format(self.i))
        self.i += 1
        return center