c ++ opencv неискаженное изображение по пикселям

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

//calculate the radius
Point2d pr; //distorted point/pixel
double dx = (pr.x - ppx);
double dy = (a * pr.y - a * ppy);

//calculate the scale factor

double s = 1 + (pow(vrx, 2) + pow(vry, 4));

//correct the distortion per point

Point2d pc; //undistorted point/pixel
pc.x = ((s * dx) + ppx);
pc.y= ((s * dy) + ppy) / a;

Все хорошо. Теперь, как мне запустить это через изображение OpenCv Mat и создать новое изображение из продукта?

Должен ли я взять мат, циклически создавая Point2d из каждой записи строки / столбца, а затем преобразовать полученные точки обратно в мат? Или есть лучший способ?

Спасибо всем.

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector