LINUX.ORG.RU

Дисторсии, что происходит?

 , ,


0

1

Привет. Честно говорю - я не очень понимаю что происходит, рассчитываю на ваше объяснение. Суть вот в чём - была первая камера, по сути ширпотреб на телефоне, она сама автоматом разгибала фреймы от дисторсий, но на ней я наблюдал разные размеры объектов в зависимости от их места проецирования на матрицу. Покрыл её йухами и списал все проблемы на неё.
Взял другую камеру, которая сама ничего не разгибает, и радостный думаю - вот теперь я всё правильно разогну своими руками. Но не тут то было, я столкнулся с той же херней.

Доказательство того, что фреймы разогнуты. Я провел линии вдоль верхней кромки дома и в центре столба, видно, что объекты негнутые. Не буду делать 100500 фото полосатого и шахмат, поверьте, все ровно.

Теперь непонятное: есть два фрейма - раз, два. Внимание на цветочный горшок на земле. Съемка производилась из одной точки лишь вращением (да, там есть незначительное изменение высоты, но оно очень мало, можно пренебречь). Чего я ожидал? Я ведь все разогнул, значит проекция горшка в разные области матрицы должна иметь одинаковый размер на итоговом записанном в память фрейме. Но это не так. Размеры отличаются. На снимке образ горшка с одного фрейма (темная тень с дырками) наложена горшок из другого фрейма.

Что происходит? Почему?

А с чего ты взял что масштаб во всех кадрах одинаковый будет? Сделать один с метра, другой с 10 метров и сравни для наглядности. Ну и под разными углами поснимай - пропорции вдоль разных осей будут неизбежно разные. То что ты конкретный кадр распрямил - значит что объекты в рамках этого одного кадра условно консистентные друг с другом, а вот с другим кадром его невозможно уже совместить.

firkax ★★★★★
()
Ответ на: комментарий от firkax

А с чего ты взял что масштаб во всех кадрах одинаковый будет? Сделать один с метра, другой с 10 метров и сравни для наглядности.

Я ведь подчеркнул, что съемка велась с одного места, никуда я не ходил, просто взял два фрейма с видика. Камера всегда находится примерно в одной точке, меняются лишь углы ее поворота. Значит на объект я всегда смотрю с константного угла, он лишь проецируется на разные места на мтрице.

Я этого дерьма уже наелся с предыдущей камерой, думал в ней дело, но теперь не уверен.

kvpfs_2
() автор топика
Последнее исправление: kvpfs_2 (всего исправлений: 1)
Ответ на: комментарий от kvpfs_2

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

разные места на мтрице

А у разных мест на матрице разные расстояния до точки фокусировки.

Всегда ваш, К.О.

Aceler ★★★★★
()

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

alysnix ★★★
()

вот стоите вы прямо перед забором и снимаете его. ну там в пяти метрах.

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

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

это ж оптика!, а не хухры мухры.

alysnix ★★★
()
Ответ на: комментарий от Aceler

А у разных мест на матрице разные расстояния до точки фокусировки.

Не, это не объяснение. Контраргумент очень простой - получается, что две области на противоположных концах матрици одинаковы, размер клумбы на них будет идентичным. Далее размещаем две клумбы сверху и снизу, концы связываем прмыми палками. Из разогнутости фреймов следует, что расстояние между палками (размер клумбы) на всей матрице должен быть одинаковым.

kvpfs_2
() автор топика
Ответ на: комментарий от alysnix

Так а для чего я фрейму разгибаю? Я же не прихожу с вопросом: «вот у меня здесь кривое дерьмо, почему на нем разные размеры?». Вот для примера как разгибается это в это.

kvpfs_2
() автор топика

проекция горшка в разные области матрицы должна иметь одинаковый размер

Схерали вдруг? Дисторсия тут ни при чём. Проекция же происходит под разными углами, размеры не будут совпадать. Даже в камере-обскуре.

no-such-file ★★★★★
()
Последнее исправление: no-such-file (всего исправлений: 1)

Эх ребята, все вы далеки от истины. Меня вдруг осенило. Посмотрите на фотку где я провел прямые линии на кромке дома, что в ней странного? Очень просто - на ней отсутствуют перспективные искажения. Т.е. края чрезмерно разгинаются, отсюда эффект - на краях матрицы объект кажется больше того же объекта в центре.

И моя первая камера поступала так же - разгибала фреймы удаляя перспективные искажения, что давало изменения геометрии при смене угла съемки.

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

kvpfs_2
() автор топика
Ответ на: комментарий от kvpfs_2

Не, это не объяснение.

Нет, это объяснение.

Твоё «разгибание» касается только геометрии в плоскости кадра. И если ты хочешь наклонить камеру, но оставить на месте геометрические искажения, тебе нужен tilt-shift объектив, чтобы оставить плоскость кадра на том же месте. Так снимают архитектуру высоченных домов с земли, например.

Деньги, я надеюсь, у тебя есть.

Aceler ★★★★★
()

Что происходит? Почему?

Если посмотреть на девятиэтажку на первом фото, то видно, например, что вертикальный размер окон одинаковый как в середине кадра, так и на его краю. Хотя очевидно, что расстояния от камеры до окон разные. Или если вместо дома поставить шахматную доску, перпендикулярно оси объектива, то все клетки будут одного размера, опять же, при разных расстояниях.

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

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

anonymous
()
Ответ на: комментарий от ist76

Так тилтшифт в этом плане ничем от обычного объектива не отличается. В их случае условная клумба, которая вращается вокруг камеры, будет одного масштаба лишь при расположении её по кругу относительно оси объектива.

Чтобы клумба была одного масштаба по всей сфере нужна либо сферическая матрица, либо объектив, вносящий соответствующие искажения, навроде fisheye.

https://en.wikipedia.org/wiki/Curvilinear_perspective

anonymous
()

Я тот кто посоветовал тебе lensfun в первый раз. Если ты прямо по хардкору решил лепить 3D на живую съемку то тебе надо гуглить хаки киношников с различными маркерами которые позволят делать корректировку всякую. Просто гнуть туда-сюда живые кадры это не вариант, тут более комплексный подход о котором я могу только догадываться (снимают на нормальные объективы например, маркеры а может даже позицию камеры на всем таймлайне пишут). Тут есть @wst который как понимаю работал с нечто подобным.

anonymous
()
Ответ на: комментарий от anonymous

За lensfun спасибо. Кстати, её модель сильно лучше lenscorrection дефолтного фильтра в ffmpeg.

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

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

kvpfs_2
() автор топика