def highlight_each_cc_driver(file, verbose=False, min_size=-1): s = time.perf_counter() cc_im = CC.CC_Image(file, verbose) if (min_size == -1): min_size = .0001 * cc_im.original.size / 3 print("No minimum component size given, defaulting to .01%: " + str(min_size) + " pixels") gray_img = cc_im.rgb_to_gray(deepcopy(cc_im.original)) binary_img = cc_im.gray_to_binary(gray_img) labels = cc_im.remove_small_ccs(cc_im.two_pass_cc(binary_img), min_size) colored_img, color_dict = cc_im.color_all_ccs(labels) cc_count = cc_im.number_of_ccs(labels) unique_labels = np.unique(labels) ul_len = len(unique_labels) t = time.perf_counter() components = [] for i, x in enumerate( np.delete(unique_labels, np.argwhere(unique_labels == 0))): img = cc_im.highlight_one_cc(labels, colored_img, x) components.append(img) global img_counter fig = plt.figure() fig.canvas.set_window_title("Component # " + str(img_counter)) fig.canvas.mpl_connect( 'key_press_event', lambda event: change_component_with_key( event.key, fig, components, colored_img, cc_im.original)) print("Highlight all CC's:", '%.6f' % (time.perf_counter() - t)) plt.subplot(1, 3, 1) plt.imshow(cc_im.original) plt.axis('off') plt.subplot(1, 3, 2) plt.imshow(colored_img) plt.axis('off') plt.subplot(1, 3, 3) plt.imshow(components[img_counter]) plt.axis('off') #img_counter += 1 print("Full runtime:", '%.6f' % (time.perf_counter() - s)) print("Found " + str(cc_count) + " connected components") plt.show() return
def rgb_to_ccs_driver(file, verbose=False, min_size=-1): s = time.perf_counter() cc_im = CC.CC_Image(file, verbose) if (min_size == -1): min_size = .0001 * cc_im.original.size / 3 print("No minimum component size given, defaulting to .01%: " + '%.6f' % (min_size) + " pixels") gray_img = cc_im.rgb_to_gray(deepcopy(cc_im.original)) binary_img = cc_im.gray_to_binary(gray_img) labels = cc_im.remove_small_ccs(cc_im.two_pass_cc(binary_img), min_size) colored_img, color_dict = cc_im.color_all_ccs(labels) plt.subplot(2, 2, 1) plt.imshow(cc_im.original) plt.axis('off') plt.subplot(2, 2, 2) plt.imshow(gray_img, cmap="gray") plt.axis('off') plt.subplot(2, 2, 3) plt.imshow(binary_img, cmap="gray") plt.axis('off') plt.subplot(2, 2, 4) plt.imshow(colored_img) plt.axis('off') print("Full runtime:", '%.6f' % (time.perf_counter() - s)) print("Found " + str(cc_im.number_of_ccs(labels)) + " connected components") plt.show() return