def __init__(self, image, piece_size, population_size, generations, elite_size=2): self._image = image self._piece_size = piece_size self._generations = generations self._elite_size = elite_size pieces, rows, columns = image_helpers.flatten_image(image, piece_size, indexed=True) self._population = [Individual(pieces, rows, columns) for _ in range(population_size)] self._pieces = pieces
def __init__(self, image, piece_size, population_size, generations, r, c): self._image = image self._piece_size = piece_size self._generations = generations self._elite_size = Config.elite_size pieces, rows, columns = image_helpers.flatten_image(image, piece_size, indexed=True, r=r, c=c) self.rows = rows self.columns = columns self._population = [ Individual(pieces, rows, columns) for _ in range(population_size) ] self._pieces = pieces self.common_edges = dict()
def __init__(self, image, piece_size, population_size, generations, elite_size=2, position_file="image_position.txt"): # 初始化种群: 代数,人口 TODO self._image = image self._piece_size = piece_size self._generations = generations self._elite_size = elite_size pieces, rows, columns = image_helpers.flatten_image( image, piece_size, indexed=True, position_file=position_file) # 循环population_size次,每次都将Individual方法调用返回的对象加入到list中 self._population = [ Individual(pieces, rows, columns) for _ in range(population_size) ] self._pieces = pieces
def create_puzzle(image_path, output_path, piece_size, position_file): """Creates jigsaw puzzle from input image""" image = cv2.imread(image_path) # 分割图片 pieces, rows, columns = image_helpers.flatten_image( image, piece_size, False) # Create puzzle by stacking pieces puzzle = image_helpers.assemble_image(pieces, rows, columns, True) # 保存图片 cv2.imwrite(str(output_path).replace(".jpg", "_format.jpg"), puzzle) # Randomize pieces in order to make puzzle np.random.shuffle(pieces) # Create puzzle by stacking pieces puzzle = image_helpers.assemble_image(pieces, rows, columns, True) save_piece_position(pieces, rows, columns, position_file) cv2.imwrite(output_path, puzzle) print_messages(["Puzzle created with {} pieces".format(len(pieces))])
def create_puzzle(image_path, piece_size): image = misc.imread(image_path) pieces, rows, columns = image_helpers.flatten_image(image, piece_size) np.random.shuffle(pieces) return image_helpers.assemble_image(pieces, rows, columns)
def puzzle(): pieces, rows, columns = image_helpers.flatten_image(image, PIECE_SIZE) np.random.shuffle(pieces) return image_helpers.assemble_image(pieces, rows, columns)