Мне трудно понять модель искажения OpenCV . Они используют «радиальные» коэффициенты и «тангенциальные» коэффициенты среди прочего, что мне не интересно.
Чтобы понять это, я разделил два термина на то, что смещение, которое они производят, вот как это выглядит :
Затем я изобразил эти значения как векторное поле с октавой (аналогично Matlab).
function radialDistortion (k1, k2, k3)
max = 10;
[x, y] = meshgrid(-max:.5:max);
r2 = x.**2 + y.**2;
k = k1*r2 .+ k2*r2.**2 .+ k3*r2.**3;
quiver(x, y, x.*k, y.*k, 0);
axis("square");
endfunction
Вызывается с
radialDistortion(0.0002, 0, 0)
производит следующее
Я понимаю, это радиально по отношению к оптической оси, таким образом, это точка, симметричная центру (где находится оптическая ось). Это было не слишком сложно.
function tangentialDistortion (p1, p2)
max = 10;
[x, y] = meshgrid(-max:.5:max);
r = x.**2 + y.**2;
xy = x.*y*2;
quiver(x, y, xy*p1 + (r+2*x.**2)*p2, xy*p2 + (r+2*y.**2)*p1, 0);
axis("square");
endfunction
Вызывается с
tangentialDistortion(-.0007, .0007)
производит это
Как это "тангенциально" к чему-либо? На мой взгляд, это похоже на коррекцию наклона объектива (повернутого по диагонали снизу-влево-вверх-вправо), что согласуется с причиной этого искажения, указанной в литературе: смещение объектива.
Означает ли это, что он касается поверхности линзы?
В конце концов, это некая математическая модель, описывающая какое-то оптическое явление с целью его коррекции. Но я хотел бы понять, почему это называется «тангенциальным».
Если положение P' также смещено тангенциально относительно CP (по касательной к окружности радиуса CP), то говорят, что искажение является тангенциальным.
Нет, это не так. Я изменил приведенную выше функцию, чтобы показать «тангенциальное» смещение точек, находящихся на окружности.
function tangentialDistortionOnCircle (p1, p2)
radius = 10;
x = radius * cos(0:2*pi/20:2*pi);
y = radius * sin(0:2*pi/20:2*pi);
r = x.**2 + y.**2;
xy = x.*y*2;
quiver(x, y, xy*p1 + (r+2*x.**2)*p2, xy*p2 + (r+2*y.**2)*p1, 0);
axis([-radius-5 radius+5 -radius-5 radius+5 ], "square");
endfunction
Вызывается с такими параметрами:
tangentialDistortionOnCircle(.007, .007)
дает этот результат
Для меня это совсем не похоже на тангенциальное смещение. Если бы это было так, это выглядело бы как водоворот вокруг центра. Но это не так.
Возьмите положение точки P на изображении относительно геометрического центра изображения C. Предположим, что C остается неискаженным в изображении, создаваемом линзой, но P искажается в P'.
Если положение P' искажается только радиально вдоль направления CP, говорят, что искажение радиальное .
Если положение P' также смещено тангенциально относительно CP (по касательной к окружности радиуса CP), то говорят, что искажение является тангенциальным .
См., например, « Калибровка камеры с моделями искажения и оценкой точности » (IEEE Transactions On Pattern Analysis And Machine Intelligence), особенно рис. 2 и 3 (стр. 968) и рис. 4 (стр. 969).
Тангенциальное искажение корректирует наклон плоскости изображения после радиального искажения. Представьте себе тонкие производственные дефекты, когда оптические элементы не выровнены с плоскостью изображения. Тангенциальные коэффициенты корректируют это несовершенство. Вот почему это похоже на вращение плоскости изображения. Конечным результатом как радиальной, так и тангенциальной деформаций должна стать модель точечного отверстия, к которой затем можно применить классические внутренние параметры, как только вы обнаружите главную точку.
В соответствующих статьях о тангенциальном искажении есть ссылки, восходящие к статье Конради 1919 года о «системах линз с децентрацией». В этой статье Конради говорит об искажении, вызванном ошибкой децентрирования многоэлементной линзовой системы. Большинство современных камер имеют многоэлементные объективы. Статья Брауна 1960-х годов имеет форму, которую мы видим в OpenCV сегодня. Это уравнение почти моделирует наклонный датчик, за исключением условий r в квадрате, но оно предназначено для моделирования децентрированной системы линз. Браун называет это децентрирующим искажением. Браун говорит об этом в своей статье: «Значительная степень децентрирования приведет как к тангенциальным искажениям, так и к асимметричным радиальным искажениям».
нулевой
удрв
нулевой
удрв
нулевой
удрв
пользователь15741