Вы можете, так как пользователь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-массивов предполагает, что эта коррекция плоского поля предназначена для учета только изменений усилителя в матрице пикселей (для уменьшения шума полос / узоров) , а не для исправления виньетирования. .