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