def error(coords_list): seeds = fixed_seeds.copy() print(f'coordinate list : {coords_list}') print(f'seeds : {seeds}') for index in range(len(coords_list) // 2): coordinate = (int(coords_list[2 * index]), int(coords_list[2 * index + 1])) seeds.update({coordinate: colour}) segmentation = Segmentation(image_array, beta, seeds, image_name, reference_path=target_segmentation_path) segmentation.solve() segmentation.build_segmentation_image() return segmentation.compute_error()
def on_solve(): beta_parameter = float(beta_entry.get()) segmentation = Segmentation(image_array, beta_parameter, seeds, image_name) segmentation.solve() if save_segmentation.get(): segmentation.build_segmentation_image() segmentation.save_segmentation_image() if draw_contours.get(): segmentation.plot_contours() segmentation.build_segmentation_image() segmentation.plot_colours()
for key, value in initial_seeds.items() if value == 'red' } initial_coords = list(initial_variable_seeds.keys()) print(f'initial coords = {initial_coords}') optimal_coords = optimize.minimize(error, initial_coords, method='nelder-mead', constraints=cons, options={ 'xtol': 1e-3, 'disp': True }) optimal_seeds = fixed_seeds for index in range(len(optimal_coords) // 2): coordinate = (int(optimal_coords[2 * index]), int(optimal_coords[2 * index + 1])) optimal_seeds.update({coordinate: colour}) # optimal segmentation segmentation = Segmentation(image_array, beta, optimal_seeds, image_name, reference_path=target_segmentation_path) segmentation.solve() segmentation.build_segmentation_image() segmentation.compute_error() segmentation.contours_to_png()