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()