if kmeans.inertia_ == 0: return kmeans prev_inertia = prev_kmeans.inertia_ if prev_kmeans else None improvement = None if prev_inertia is None else prev_inertia / kmeans.inertia_ if improvement is not None and improvement < 2: break prev_kmeans = kmeans return prev_kmeans def create_match_image(img1, img2, points1, points2, match_dists, ring_points): # Draw thick rings at each cluster centroid. canvas = l1_match.create_match_image(img1, img2, points1, points2, match_dists) h1, w1 = img1.shape[:2] for x, y in ring_points: cv2.circle(canvas, (int(x + w1), int(y)), 10, (0,255,0), 4) return canvas if __name__ == '__main__': # needle = l0_image.Image('stuff/needles/jb.jpg') # hay_path = os.path.expanduser('~/Desktop/frames/out0301.png') needle = l0_image.Image('stuff/needles/bud-light.jpeg') hay_path = os.path.expanduser(config.get_frame('out0271.png')) hay = l0_image.Image(hay_path) points1, points2, sdists, kmeans, biggest_group = get_match_points(needle, hay) canvas = create_match_image(needle.image, hay.image, points1, points2, sdists, kmeans.cluster_centers_) l0_image.display(canvas)
keep_indexes = set() median_ratio = np.median(ratios, axis=0)[1] if ratios else None for i, ratio in ratios: if ratio >= median_ratio * .5 and ratio <= median_ratio * 2 or median_ratio == 0: keep_indexes.add(i) points1, points2, match_dists = [ [list_[i] for i in keep_indexes] for list_ in points1, points2, match_dists] if len(points1) == 1: points1, points2 = [], [] return points1, points2, match_dists, kmeans if __name__ == '__main__': needle_path = 'stuff/needles/oroweat.jpeg' hay_path = config.get_frame('out0144.png') # hay_path = '/Users/jessealdridge/Desktop/frames/out0300.png' # needle_path = 'stuff/needles/bud-light.jpeg' # hay_path = os.path.expanduser('~/Desktop/frames/out0001.png') # hay_path = os.path.expanduser('~/Desktop/frames/out0261.png') # needle_path = 'stuff/needles/jb.jpg' # hay_path = os.path.expanduser(config.get_frame('out0007.png')) # oh god why # hay_path = os.path.expanduser('~/Desktop/frames/out0077.png') # hay_path = os.path.expanduser('~/Desktop/frames/out0261.png') # hay_path = os.path.expanduser('~/Desktop/frames/out0300.png') # hay_path = os.path.expanduser('~/Desktop/frames/out0301.png') # needle_path = 'stuff/needles/therma_vid-large.mp4care.jpeg' # hay_path = os.path.expanduser('~/Desktop/frames/out0622.png')