Плоское отображение изображения с двумя одномерными массивами - Фотопедия
1 голос
/ 28 октября 2013

Это больше математические вопросы, но я подумал, что у меня больше шансов найти энтузиаста камеры с математическим фоном.

У меня всегда плоские изображения с использованием двумерного массива с усилением для каждого пикселя. Поэтому я получаю таблицу с полями A x B для камеры с размерами A x B. Недавно я начал работать с камерой, которая утверждала, что они построили плоское поле, но таблица усиления, которую они создали, содержит только два 1D массива, A + B.

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

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

Спасибо!

Ответы [ 2 ]

3 голосов
/ 01 ноября 2013

Вы можете, так как пользователь1118321 утверждает правильное виньетирование, используя пару одномерных массивов, при условии, что профиль виньетирования является отрицательным экспоненциальным (он не должен быть строго гауссовым, т. Е. Интеграл не имеет суммировать до 1). Коэффициент усиления, применяемый в координатах [x, y], должен иметь вид:

e^k(x^2 + y^2)

, где k <0, e> 1 (для гауссовой e - экспоненциальная постоянная)

Если это так, то коэффициент усиления при [x, y] можно найти, умножив

e^k(x^2)

от

e^k(y^2)

, поскольку нахождение произведения двух экспонент является просто случаем добавления экспонент. Поэтому, если вы сохраняете значение e ^ k (z ^ 2) в массиве, вы можете дважды просмотреть значение для x и y, умножить их и получить значение для [x, y] (вы даже не нужно 2 массива, если виньетка круглая). Если он эллиптический, то два массива будут одинаковой формы, но будут иметь разное масштабирование.

Однако постоянное линейное спадание в круговой схеме не может быть исправлено с помощью этого метода (если вы не прибегаете к полярным координатам, тогда требуется только 1 массив), поскольку он опирается на свойства экспонент.


Меня поражает, что использование двух 1D-массивов предполагает, что эта коррекция плоского поля предназначена для учета только изменений усилителя в матрице пикселей (для уменьшения шума полос / узоров) , а не для исправления виньетирования. .

0 голосов
/ 01 ноября 2013

Если вы просто хотите исправить виньетирование, вы можете создать отдельный фильтр, как если бы вы использовали размытие по Гауссу:

Помимо круговой симметрии, размытие по Гауссу может быть применено к двумерному изображению в виде двух независимых одномерных вычислений и поэтому называется разделимым. То есть эффект применения двумерной матрицы также может быть достигнут путем применения серии одномерных гауссовых матриц в горизонтальном направлении, а затем повторения процесса в вертикальном направлении. В вычислительном плане это полезное свойство, поскольку вычисление может быть выполнено за O (w_kernel * w_image * h_image) + O (h_kernel * w_image * h_image) время (где h - высота, а w - ширина; см. Примечание Big O) , в отличие от O (w_kernel * h_kernel * w_image * h_image) для неразделимого ядра.

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

...