def show_difference(pic_file_path, actual, difference): the_image = cv2.imread(pic_file_path, 0) the_image = Image.resize_keeping_ratio_by_height(the_image) # Display.image(the_image) actual_number_indexs, actual_digits, actual_number_ragions = actual if difference: identified_number_ragions = identify_wrong_number(actual_number_ragions, difference, False) # identified_number_ragions = identify_wrong_number(actual_number_ragions, difference) else: identified_number_ragions = actual_number_ragions all_number_ragion = join_number_ragions(actual_number_indexs, identified_number_ragions) all_number_ragion = numpy_helper.transfer_values_quickly(all_number_ragion,{1:255}) # all_number_ragion = Image.colorize(all_number_ragion) # Display.image(all_number_ragion) if difference: wrong_number_ragions = generate_wrong_number_ragions(difference) wrong_number_ragion = join_number_ragions(actual_number_indexs, wrong_number_ragions) wrong_number_ragion = Image.resize_keeping_ratio_by_height(wrong_number_ragion, all_number_ragion.shape[0]) wrong_number_ragion = numpy_helper.transfer_values_quickly(wrong_number_ragion,{1:255}) # Display.image(Ragions.join((all_number_ragion, wrong_number_ragion), 1)) # Display.ragions([the_image, all_number_ragion, wrong_number_ragion]) Display.images([Ragions.join((all_number_ragion, wrong_number_ragion),1), the_image]) else: Display.images([all_number_ragion, the_image])
def identify_wrong_number(number_ragions, difference, show_actual=True): all_number_images = generate_number_images() identified_number_ragions = number_ragions[:] for index,_,actual in difference: height, width = number_ragions[index].shape if show_actual: number_ragions[index] = Image.resize_keeping_ratio_by_height(all_number_images[actual], height) height, width = number_ragions[index].shape identified_number_ragions[index] = Ragion.fill(number_ragions[index], (height+2, width+2), 1) return identified_number_ragions
all_names = filter(lambda name: name.startswith(PERFORM_PREFIX), globals()) for index, name in enumerate(all_names): window_name = name[len(PERFORM_PREFIX):] method = globals()[name] show_window(the_image, window_name, index, perform_func=method) control_name = filter(lambda name: name.startswith(CONTROL_NAME), globals())[0] show_window(the_image, control_name, len(all_names), perform_func=None, control_func=globals()[control_name]) cv2.waitKey(0) cv2.destroyAllWindows() def draw_text(the_image, the_text): cv2.putText(the_image, the_text, (20,20), cv2.FONT_HERSHEY_PLAIN, 1.0, (0,255,0)) if __name__ == '__main__': from minitest import * image_path = './original.jpg' color_image = cv2.imread(image_path) gray_image = cv2.imread(image_path, 0) color_image = Image.resize_keeping_ratio_by_height(color_image) gray_image = Image.resize_keeping_ratio_by_height(gray_image) with test("blurring"): # show_simple_blurring(color_image) show_all(color_image) pass