Предположим, у вас есть несколько маленьких изображений, вырезанных из одного большого изображения. Каждое маленькое изображение представляет собой некоторый под прямоугольник большого изображения. Маленькие изображения имеют достаточное перекрытие друг с другом. Тем не менее, у вас нет большого изображения: учитывая маленькие изображения, как вы восстанавливаете большое изображение? Есть ли программное обеспечение для автоматизации этого?
Предположим, мы имеем дело с форматами изображений без потерь, такими как PNG. Здесь нет поворота, искажения перспективы или любого другого размытия, каждое входное изображение является точной обрезкой желаемого выходного изображения.
Несколько точнее, найдите изображение X, возможно, с некоторыми "пустыми" пикселями, например:
- Каждое входное изображение - это прямоугольник X.
- Каждый пиксель X либо "пустой", либо получен как минимум из одного входного изображения.
- Х "как можно меньше".
Первые два требования точны, третье я не сделал совершенно точным. Третье требование - исключить тривиальные решения, такие как простое размещение входных изображений в некотором порядке. Допускаются пустые пиксели, так как входные изображения могут не выравниваться идеально, чтобы образовать прямоугольник. Например, если входы
ABC EFG
DEF HIJ
Я ожидаю, что результат будет
ABC
DEFG
HIJ
(Здесь каждая буква представляет пиксель определенного цвета. Например, возможно, каждый A - это белый пиксель, каждый B - черный пиксель и т.д.)
Вариант использования - это объединение нескольких скриншотов чего-либо, что вы можете панорамировать (например, карту или игру).
Краткий поиск в Google не дал программного обеспечения для этого. Существуют инструменты для сшивания панорам, такие как Hugin, но они "слишком интеллектуальны", и я не уверен, что их можно сделать так, чтобы они соответствовали требованию "каждое входное изображение должно быть точно обрезанным".