2011-12-11 1 views
0

Я пытаюсь решить проблему компоновки двух изображений в Java. Программа займет часть первого изображения и пройдет мимо второго изображения. Цель состоит в том, чтобы сделать границу между двумя изображениями менее заметной. Границу нужно выбирать так, чтобы разница между двумя изображениями на границе мала.Компиляция изображений двух изображений


Мои задачи:

Чтобы написать метод, чтобы выбрать границу между двумя изображениями. Метод получит перекрывающиеся части входных изображений. Сначала это нужно преобразовать так, чтобы граница всегда начиналась с левого верхнего угла в правый нижний угол.

ПРИМЕЧАНИЕ: Возвращенное изображение не должно быть соединенным изображением, но при этом используются части этих двух изображений.

Пиксели пограничной линии могут быть отмечены константой (SEAM). Пиксели первого изображения могут быть помечены целым числом 0, пиксели второго изображения с целым числом 1. После выбора граничной линии алгоритм floodfill можно использовать для заполнения дополнительных пикселей с помощью 0 или 1.

ПРИМЕЧАНИЕ: Изображение может быть представлено в виде графика, посредством которого каждый пиксель соединен с его левым, правым, верхним и нижним соседом. Таким образом, использование заливки заливки будет похоже на поиск по глубине.

Самый короткий путь алгоритма должен использоваться для выбора границы, чтобы сделать его маленьким.

Примечание: я не могу использовать любую структуру данных Java, за исключением массивов (даже не ArrayList)


Ребята, я новичок в этой области, и я пытаюсь решить. Какие шаги следует предпринять для решения этой проблемы? или указатель на учебник

+1

* «Я не могу использовать любую структуру данных Java, кроме массивов (даже ArrayList)» * Это домашнее задание? –

+0

Нет, это не так. Я бы пометил это домашнее задание, если это так –

+0

Так почему же вы не можете использовать какую-либо структуру данных Java (помимо массивов) или даже структуру своего собственного устройства? –

ответ

0

Я хотел бы сделать это так:

Выберите ширину границы проверяется. По твоей воле. 1. Найдите максимально возможный сдвиг в пикселях. То есть D. 2. Для всех возможных сдвигов в квадрате (+ -D, + - D) найдите k (корреляционный коэффициент) для границы. Граница берется в середине смены. 3. Сдвиг, который имеет наибольший k, является лучшим. Пусть это будет восприниматься как нечто само собой разумеющееся. 4. Теперь начните перемещать границу, проверяя ее «k» таким же образом. Найдите место. Готово.

Если D велико и процесс длинный, сделайте это в 2 (или более) этапах. На первых этапах шаг подсчета k велико, последний этап имеет шаг 1. Вы также можете использовать предыдущую фильтрацию.

Если положение границы или относительных изображений может быть повернуто, алгоритм не изменяется главным образом - добавьте его только к лучшему k между различными слегка повернутыми позициями, а затем - к границе.

Смежные вопросы