Post reply

Note: this post will not display until it's been approved by a moderator.

Name:
Email:
Subject:
Message icon:

Verification:
√49 Напишите ответ строчными буквами:
«Сто одёжек, все без застёжек» — что это?:

shortcuts: hit alt+s to submit/post or alt+p to preview


Topic Summary

Posted by: Валентин Н
« on: April 26, 2017, 20:49 »

Искажений нет, когда вы смотрите на картинку с такого расстояния, на котором она составляет в вашем поле зрения тот же угол, что был у камеры.
Всё, я понял в чём загвоздка. Под искажениями я имел ввиду реальное искажение на экране, а не то, что можно увидеть с различных углов.

Круг в центре, при широком угле обзора, станет овалом в углу экрана, независимо от вашего положения. И чем больше угол, тем вытянутее будет и наоборот.
Posted by: Toman
« on: April 9, 2017, 23:56 »

Я щас посчитал так:
Диагональ прямоугольника (1280×720) это — длина дуги на сфере, угол 60°, площадь сферы получилась 24 175 107.45 ≈242.
Ну вот - результат совпал. Но это именно площадь сферы как таковая.

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

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

Хотя и пикселы на матрице тоже должны быть как-то физически организованы - строки и столбцы, как бы они ни были расположены. Хотя есть и специфический хитрый вариант с хаотическим расположением пикселов, имеющий свои преимущества - но для грамотной работы и этот вариант должен быть как-то физически организован (что сложнее, чем для регулярных решёток). Но в случае съёмки всей сферы несколькими более-менее обычными камерами тут большой проблемы нет - обычные матрицы годятся, а изображение всё равно подлежит преобразованию в координаты хранения и соединению со всех этих камер.
Posted by: Валентин Н
« on: April 9, 2017, 19:42 »

Поскольку расстояние между "меридианами" изменяется по широтам по (ко)синусоиде, реальное информационное наполнение всей картинки будет в π/2 раз меньше, т.е. примерно в 25,5 раз больше одного окна, или примерно 23 эффективных мегапиксела.
Я щас посчитал так:
Диагональ прямоугольника (1280×720) это — длина дуги на сфере, угол 60°, площадь сферы получилась 24 175 107.45 ≈242.

Многовато вышло, если уменьшить качество до ТВшного 576 строк, то кадр 16:9 будет 1024×576, а вся сфера 15 817 668.77 ≈158.
Posted by: Валентин Н
« on: April 9, 2017, 11:24 »

в высоких "широтах" уменьшается, т.к. "меридианы" сходятся слишком близко
А вот это решается выпуклой матрицей. Ведь если поверхность будет под углом, то проекция будет растягиваться. Посветите фонариком на стену под углом и будет овал, так же и с мередианами, они растянутся.
Posted by: Валентин Н
« on: April 9, 2017, 11:22 »

сущность процесса - в показе только малой части картинки
Сущность процесса — в натягивании на сферу (выдавливании). Если просто кадрировать, ничего не изменится, искажения как были так и останутся.
Posted by: Toman
« on: April 9, 2017, 02:58 »

вы имеете в виду, в переводе на общепонятный язык,
называется выдавливание.
Если уж использовать просторечные "народные" варианты, то это будет называться кадрирование/кроп/наезд/зум. Поскольку сущность процесса - в показе только малой части картинки, именно той, на минимальные искажения в которой рассчитана проекция - и потому он всегда выглядит как "наезд зумом". А вашу терминологию я только от вас и слышу, и ниоткуда больше.

Так вот, возращаясь к первоначальным вопросам:
1. при каком угле не будет видно искажений (вы пишете 60°, ок поверю). Так вот у прямоугольного участка 16:9, с обзором 60° по диагонали должно быть разрешение 720 (чтоб нормально выглядело).
Окей, если по диагонали 16:9 (составляющей около 18,35 в тех же единицах) около 60°, то по высоте такого кадра будет около 30°. И это 720 строк.

2. Осталось сосчитать какое разрешение будет у всей панорамы.
А вот тут надо выбрать, в каком виде эта панорама (допустим, полная сферическая) будет храниться. Если допустим, что в простейшем варианте - тупо по горизонтали "долгота" (азимут), по вертикали "широта" (угловая высота), и что пиксел на "экваторе" (горизонте) квадратный, то всё соотв. просто - по высоте нам нужно 180°, что в 6 раз больше 30°, или в пикселах 720*6=4320. По азимутам нужно все 360, т.е. вдвое больше - 8640. Таким образом, в таком варианте хранения разрешение нужно 8640x4320, что составляет приблизительно 37 млн. пикселов, против примерно 0,9 млн. пикселов показываемой при вышеозначенных условиях части картинки. Т.е. примерно в 40 раз больше выбранного размера кадра. И примерно соответствует физическому количеству пикселов в современных полнокадровых зеркалках. Впрочем, реальное информационное наполнение в высоких "широтах" уменьшается, т.к. "меридианы" сходятся слишком близко, и более-менее адекватный алгоритм сжатия по идее должен был бы этим воспользоваться и не потратить зря место под хранение почти одинаковых соседних пикселов в высоких "широтах". Поскольку расстояние между "меридианами" изменяется по широтам по (ко)синусоиде, реальное информационное наполнение всей картинки будет в π/2 раз меньше, т.е. примерно в 25,5 раз больше одного окна, или примерно 23 эффективных мегапиксела. Столько же получится физически, если использовать для хранения изображения, например, синусоидальную проекцию как таковую (но на ней обычные алгоритмы сжатия не будут правильно работать, скорее всего) - это определяется просто площадью сферы.

В общем, дофига.
Posted by: Валентин Н
« on: April 8, 2017, 17:16 »

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

вы имеете в виду, в переводе на общепонятный язык,
называется выдавливание.

на любом экране можно показать кусок с углом приблизительно до 60 градусов. Что всё равно маловато и утрачивает специфику съёмки
Ну отключите выдавливание, вас не заставляют его применять.

Так вот, возращаясь к первоначальным вопросам:
1. при каком угле не будет видно искажений (вы пишете 60°, ок поверю). Так вот у прямоугольного участка 16:9, с обзором 60° по диагонали должно быть разрешение 720 (чтоб нормально выглядело).
2. Осталось сосчитать какое разрешение будет у всей панорамы.
Posted by: Toman
« on: April 8, 2017, 15:06 »

Выдавить это значит натянуть на сферу или её часть и смотреть из ея центра.
Но экраны, на которых работают проигрыватели и просмотрщики фотографий, и бумага, на которой печатают фотографии - как правило, плоские. И занимают, как правило, довольно небольшой угол зрения, редко превосходящий 60 градусов, совсем редко превосходящий 90-110 градусов, и в принципе не способный ни при каких условиях достигнуть 180 градусов.

Поэтому, если я правильно понял (на плоском экране эмулировать смотрение из центра сферы, которую мы не можем сделать физически - так?), вы имеете в виду, в переводе на общепонятный язык, преобразование изображения в гномоническую (она же ректилинейная, она же "обычная" в фотграфии, даваемая, например, камерой-обскурой) проекцию, точно согласованную с положением зрителя перед экраном (и расстоянием, и смещением от центральной оси).

Но тогда всё сводится к моему первому же ответу: доступный в таком режиме угол обзора определяется, естественно, угловым размером экрана, на котором зритель смотрит, и из картинки экшн-камеры на голове (например) пешехода, велосипедиста или каякера остаётся так же мало, как если бы зритель, находясь на месте этого человека, наблюдал окружающее через "танковую щель" размером со свой монитор/планшет/смартфон - на чём он там будет смотреть видео. Это если подходить математически строго. А если сделать послабление для тех искажений, которые ещё почти не заметны зрительно - то на любом экране можно показать кусок с углом приблизительно до 60 градусов. Что всё равно маловато и утрачивает специфику съёмки, при которой камера видит, в идеале, почти всё, что видит находящийся на этом месте человек, не делая заметных поворотов головы - что требует обзора как раз около 180 градусов. И, соответственно, примерно в 3 раза увеличивается ощущаемая зрителем амплитуда тряски.
Posted by: Валентин Н
« on: April 8, 2017, 11:11 »

вы называете "смотреть с искажениями"
да

Принципиально не хотите говорить на понятном для других языке?
Выдавить это значит натянуть на сферу или её часть и смотреть из ея центра.
Posted by: Toman
« on: April 8, 2017, 02:25 »

Без проблем. Отдалите на максимум.
Т.е. то, что вы называете "смотреть с искажениями", я так понимаю.

Под словом выдавить, я понимал выдавить. Про проекции я ни одного слова не говорил.
Принципиально не хотите говорить на понятном для других языке?