OpenCV: задание коэффициентов для коррекции "рыбьего глаза"

Модератор: Модераторы разделов

Ответить
IMB
Сообщения: 2561
ОС: Debian

OpenCV: задание коэффициентов для коррекции "рыбьего глаза"

Сообщение IMB »

Доброго дня!
В выводимом изображени мне необходимо скорректировать "рыбий глаз", не очень большой, но всё же. Для начала решил воспользоваться OpenCV (http://docs.opencv.org/ref/master/db/d58/group__calib3d__fisheye.html).
С помощью функции cv::fisheye::calibrate получил первичные коэффициенты и применяю их к изображению:

Код: Выделить всё

cv::Matx33d K(_coefficient.fx, 0, _coefficient.cx, 0, _coefficient.fy, _coefficient.cy, 0, 0, 1);
cv::Vec4d D(_coefficient.k1, _coefficient.k2,  _coefficient.k3, _coefficient.k4);

cv::fisheye::undistortImage(out, _rgb, K, D);

Но функция вываливается с сообщением - OpenCV Error: Assertion failed ((P.depth() == CV_32F || P.depth() == CV_64F) && (R.depth() == CV_32F || R.depth() == CV_64F)) in initUndistortRectifyMap, file /opencv/modules/calib3d/src/fisheye.cpp, line 409
P и R в функции соответствуют моим переменным K и D.
Другой вариант кода заканчивается аналогичным сообщением:

Код: Выделить всё

std::vector<qreal> K(9);
std::vector<qreal> D(4);

K.push_back(_coefficient.fx);
K.push_back(0);
K.push_back(_coefficient.cx);
K.push_back(0);
K.push_back(_coefficient.fy);
K.push_back(_coefficient.cy);
K.push_back(0);
K.push_back(0);
K.push_back(1);
D.push_back(_coefficient.k1);
D.push_back(_coefficient.k2);
D.push_back(_coefficient.k3);
D.push_back(_coefficient.k4);

Вопрос - как правильно сформировать массивы коэффициентов?
Спасибо.
Спасибо сказали:
Saiber
Сообщения: 1
ОС: win7/ubuntu

Re: OpenCV: задание коэффициентов для коррекции "рыбьего глаза"

Сообщение Saiber »

Привет Imb! Как раз сейчас этим и занимаюсь, пишу FisheyeCalib - программу для калибровки фишай камер. Нашел несколько ошибок в OpenCVшной реализации, удалось это дело завести. Пиши в личку, постараюсь помочь. У нас есть несколько общих тем для разговоров. Хотел у тебя поинтересоваться, как решился вопрос с отображением rtsp в вебморде?
Спасибо сказали:
Ответить