Панорамирование
От: Васильич  
Дата: 24.12.05 14:47
Оценка:
Доброго времени суток всем.

Возникла одна интересная задача, но так как я уже давно не занимаюсь проблемами из этой области — то рискну спросить тут. Итак:

Есть ряд фотографий, сфотографированных фотоаппаратами, расположенными на одной прямой на определенном друг от друга расстоянии. Обьективы направлены строго парралельно друг другу. Снимки сделаны в одно и тоже время. Требуется на основе комбинирования этих снимков получить более широкоформатный снимок (снимок, охватывающий вид с точки зрения всех камер). Другими словами, требуется получить то, что в современных цифровых фотоаппаратах называется панорамированием.

В первую очередь интересуют ссылки на любые статьи по этой теме или алгоритмы. Если кто-то сможет обьяснить алгоритм хотя бы на пальцах — тоже не откажусь . В общем, буду благодарен за любую помощь.
Re: Панорамирование
От: Рома Мик Россия http://romamik.com
Дата: 28.12.05 14:24
Оценка: +1
Здравствуйте, Васильич, Вы писали:

В>Есть ряд фотографий, сфотографированных фотоаппаратами, расположенными на одной прямой на определенном друг от друга расстоянии. Обьективы направлены строго парралельно друг другу. Снимки сделаны в одно и тоже время. Требуется на основе комбинирования этих снимков получить более широкоформатный снимок (снимок, охватывающий вид с точки зрения всех камер). Другими словами, требуется получить то, что в современных цифровых фотоаппаратах называется панорамированием.

Во-первых идея что фотоаппараты направлены одинково, но смещены друг относительно друга, неверная. Так панорамы не делают, так далеко бегать придется и все равно больше 180 градусов не получишь. Да и с наложением изображений возникнут проблемы, т.к. на один и тот же объект ты будешь смотреть под разным углом и он будет выглядеть различно на разных картинках. Так что снимают из одной точки под разными углами.

Дальнейшая задача преобрзовать картинки так, чтобы координаты линейно зависели от направления на изображеаемый объект. Формул не скажу, но их можно найти в курсе какой-нибудь общей оптики или как он называется, еще в школе проходят.

Далее картинки совмещаются без проблем.

Проблема только в том, чтобы определить куда был направлен фотоаппарат.
Re[2]: Панорамирование
От: LelicDsp Россия  
Дата: 28.12.05 19:59
Оценка: +1
РМ>Проблема только в том, чтобы определить куда был направлен фотоаппарат.
Проблем много. Во-первых определить преобразование не так просто, нужно учесть сдвиг, поворот, изменение ракурса и масштаба. Во-вторых если фотографировали с автоматом, то яркость (точнее соотношение между реальным цыетом и зафиксированным) у двух снимков совпадать не будет из-за разных выдержек, диафрагм и пр. Втретьих всегда есть подвижные объекты — облака, травинки, деревья. Они с одной стороны мешают качественно решить задачу N1, с другой — делают место склейки заметным. В какой-то степени помогает полупрозрачное наложение, но иногда только хуже делает.
Re[3]: Панорамирование
От: Васильич  
Дата: 28.12.05 20:38
Оценка:
Здравствуйте, LelicDsp, Вы писали:


РМ>>Проблема только в том, чтобы определить куда был направлен фотоаппарат.

LD>Проблем много. Во-первых определить преобразование не так просто, нужно учесть сдвиг, поворот, изменение ракурса и масштаба. Во-вторых если фотографировали с автоматом, то яркость (точнее соотношение между реальным цыетом и зафиксированным) у двух снимков совпадать не будет из-за разных выдержек, диафрагм и пр. Втретьих всегда есть подвижные объекты — облака, травинки, деревья. Они с одной стороны мешают качественно решить задачу N1, с другой — делают место склейки заметным. В какой-то степени помогает полупрозрачное наложение, но иногда только хуже делает

Я уточню — все фотографии получены на абсолютно одинаковой технике и в одно и тоже время. Это чуть упрощает задачу.

Теперь о том, что уже удалось надумать — да, без искажений склеить фотографии не получится. Поэтому сейчас основная задача — сделать это с минимальными искажениями. При этом слияние будет делаться программно и в рилтайме, то есть ресурсами разбрасываться нельзя.

Самое простое решение, которое приходит в голову — просто склейка встык, по линиям совмещения фотографий (мой.термин). Линия совмещения — такая линия, по которой можно наложить две фотографии друг на друга, так, чтобы их содержимое плавно перешло друг в друга.Учитывая разницу между углом сьемки и углом наблюдения после склейки — у наблюдателя должно сложиться ощущения, что он находится в шаре. Чтобы исправить это искажение — можно текстурировать фотографиями большую призму, вращающуюся перед наблюдателем (или даже цилиндр). Фотографии опять же стыковать по линиям совмещения. Тут надо подбирать количество сторон призмы и выбор этих самых линий.

Какие еще будут мысли?
Re[3]: Панорамирование
От: Рома Мик Россия http://romamik.com
Дата: 29.12.05 07:59
Оценка:
Здравствуйте, LelicDsp, Вы писали:


РМ>>Проблема только в том, чтобы определить куда был направлен фотоаппарат.

LD>Проблем много.
Да, я действтельно ограничился только геометрическим совмещением изображений, на последующих этапах тоже есть проблемы.

LD>Во-первых определить преобразование не так просто, нужно учесть сдвиг, поворот, изменение ракурса и масштаба.

Не вижу проблему.

LD>Во-вторых если фотографировали с автоматом, то яркость (точнее соотношение между реальным цыетом и зафиксированным) у двух снимков совпадать не будет из-за разных выдержек, диафрагм и пр.

Больше того, светосила объектива неравномерна, в центре больше, по краям меньше. Но в принципе всё это решается причем даже и автоматически, без вмешательства оператора.

LD>Втретьих всегда есть подвижные объекты — облака, травинки, деревья. Они с одной стороны мешают качественно решить задачу N1, с другой — делают место склейки заметным. В какой-то степени помогает полупрозрачное наложение, но иногда только хуже делает.

Я лично при изготовлении панорам, делаю этот этап вручную, т.к. автоматизировать это очень и очень трудно, а вручную сделать совсем несложно.
Re[4]: Панорамирование
От: Рома Мик Россия http://romamik.com
Дата: 29.12.05 08:10
Оценка: +1
Здравствуйте, Васильич, Вы писали:

В>Я уточню — все фотографии получены на абсолютно одинаковой технике и в одно и тоже время. Это чуть упрощает задачу.

И действительно расположены так, как ты описал? Если да, можно попробовать считать что они расположены на окружности большого радиуса и направлены в центр этой окружности, тогда тоже можно наверное гладкую картинку получить.

В>Теперь о том, что уже удалось надумать — да, без искажений склеить фотографии не получится. Поэтому сейчас основная задача — сделать это с минимальными искажениями. При этом слияние будет делаться программно и в рилтайме, то есть ресурсами разбрасываться нельзя.

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

В>Самое простое решение, которое приходит в голову — просто склейка встык, по линиям совмещения фотографий (мой.термин). Линия совмещения — такая линия, по которой можно наложить две фотографии друг на друга, так, чтобы их содержимое плавно перешло друг в друга.

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

В>Какие еще будут мысли?

Посмотри PanoramaTools (http://www.tawbaware.com/ptasmblr.htm — ИМХО лучший гуй для PanoTools). Практически их применить не выйдет (хотя чем черт не шутит), но все механизмы поймешь как действуют.
Re: Панорамирование
От: minorlogic Украина  
Дата: 29.12.05 09:02
Оценка: 1 (1)
Вся эта задача решена и есть в исходниках.
Panorama tools, Hugin.

что таке паралакс можно увидеть тут "http://www.minorlogic.com/projects/smartblend/index.htm" . возникает если снимать из разных точек.
Ищу работу, 3D, SLAM, computer graphics/vision.
Re[2]: Панорамирование
От: Васильич  
Дата: 29.12.05 11:59
Оценка:
Здравствуйте, minorlogic, Вы писали:

M>Вся эта задача решена и есть в исходниках.

M>Panorama tools, Hugin.

M>что таке паралакс можно увидеть тут "http://www.minorlogic.com/projects/smartblend/index.htm" . возникает если снимать из разных точек.


Спасибо, по тому, что я уже успел увидеть — именно то, что нужно.
Re[2]: Панорамирование
От: Reunion  
Дата: 31.12.05 05:34
Оценка:
Здравствуйте, minorlogic, Вы писали:

M>Вся эта задача решена и есть в исходниках.

M>Panorama tools, Hugin.

А что-то я исходников найти не могу... Не поможете?

M>что таке паралакс можно увидеть тут "http://www.minorlogic.com/projects/smartblend/index.htm" . возникает если снимать из разных точек.
Re[2]: Панорамирование
От: Аноним  
Дата: 09.01.06 05:44
Оценка:
Здравствуйте, minorlogic, Вы писали:

M>Вся эта задача решена и есть в исходниках.


А не подскажете, где именно можно взять исходники?


M>Panorama tools, Hugin.


M>что таке паралакс можно увидеть тут "http://www.minorlogic.com/projects/smartblend/index.htm" . возникает если снимать из разных точек.
Re[3]: Панорамирование
От: minorlogic Украина  
Дата: 09.01.06 09:45
Оценка:
Здравствуйте, <Аноним>, Вы писали:

А>Здравствуйте, minorlogic, Вы писали:


M>>Вся эта задача решена и есть в исходниках.


А>А не подскажете, где именно можно взять исходники?

M>>Panorama tools, Hugin.

google + panotools + source + code
http://panotools.sourceforge.net/

Алгоритм действия понятен ?
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Ищу работу, 3D, SLAM, computer graphics/vision.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.