Ну, мне больше не нужно делать это, чтобы делать то, что я хочу делать, но я расскажу, как бы это сделать, если бы я написал его в python (сочетание psuedocode и python). Здесь я предполагаю, что верхний левый угол последующих изображений всегда является точкой перекрытия (что было истинно в моем случае). Если вы хотите обнаружить перекрытия для любого угла, вам нужно будет определить, какой «угловой» случай (каламбур предназначен: D), в котором вы находитесь, и добавить обработку для каждого случая.
images = list of images to be stitched, loaded from directory
stitched_image = images[0]
for (image in images):
if first image then skip it (continue)
else combine_images(stitched_image, image)
def combine_images (stitched_image, image_to_add):
top_left_corner = top left corner of image_to_add
// top_left_corner dimensions need to be big enough that you don't have a false positive,
// but not so big that the overlap doesn't exist
coordinates = find_coordinates(stitched_image,top_left_corner)
new_width = max(stitched_image.width,image_to_add.width + coordinates.x)
new_height = max(stitched_image.height,image_to_add.width + coordinates.y)
new_image = new Image(new_width,new_height) // See note 1
new_image.paste(stitched_image,(0,0))
new_image.paste(image_to_add,(coordinates.x,coordinates.y))
stitched_image = new_image
def find_coordinates (image,sub_image):
// See note 2 for how to implement
Примечания:
Создание образа и вставки в него могут быть accomplised с PIL: http://29a.ch/2009/5/14/concatenating-images-using-python
Смотрите этот вопрос о том, как найти sub_image в изображении (возможно, потребуется для преобразования изображения в другое представление): Finding a subimage inside a Numpy image.Кроме того, для любого опытного программиста было бы нелегко вручную проверять пиксели в матрице пикселей, чтобы найти перекрытие. Вы можете добавить дополнительную оптимизацию, если вы знаете грубую информацию о том, где совпадение, вероятно, произойдет, просто сначала в более вероятных областях.
Другим вариантом использования будет скриншоты из 2D игр с прокруткой. Моя проблема в основном такая же, как и в [закрытом вопросе] (http://stackoverflow.com/questions/9104649/is-there-software-to-stitch-together-a-high-number-of-small -digital-images-witho) – Muhd
Этот вопрос может быть полезен: http://mathematica.stackexchange.com/q/1911/121 –