ОБНОВЛЕНИЕ СТАТУСА BOUNTY:
  Я обнаружил, как сопоставить линейный объектив, от destination координат до координат source. 
Как вы вычисляете радиальное расстояние от центра до перехода от рыбий глаз к прямолинейному?
-  
1). Я действительно пытаюсь перевернуть его и сопоставить исходные координаты с координатами назначения. Что такое обратное, в коде в стиле преобразованных функций, которые я разместил?
![SIhfE.jpg]()
 -  
2). Я также вижу, что мое искажение несовершенно на некоторых объективах - предположительно те, которые не являются строго линейными. Какова эквивалентность координат источника и места назначения для этих линз? Опять же, больше кода, чем просто математические формулы, пожалуйста...
![ickIZ.jpg]()
 
Вопрос, как изначально указано:
У меня есть некоторые моменты, которые описывают позиции на снимке, сделанном с линзой с рыбий глаз.
Я хочу преобразовать эти точки в прямолинейные координаты. Я хочу исказить изображение.
Я нашел это описание о том, как создать эффект рыбий глаз, но не как его перевернуть.
Также есть сообщение в блоге, в котором описывается, как использовать инструменты для этого; эти снимки:
  (1): source Исходная ссылка на фото 
Вход: Исходное изображение с искажением рыбьего глаза для исправления.
  (2): destination Исходная ссылка на фото 
Выход: Исправленное изображение (технически также с коррекцией перспективы, но это отдельный шаг).
Как вы рассчитываете радиальное расстояние от центра, чтобы перейти от рыбий глаз к прямолинейному?
Моя заглушка выглядит следующим образом:
Point correct_fisheye(const Point& p,const Size& img) {
    // to polar
    const Point centre = {img.width/2,img.height/2};
    const Point rel = {p.x-centre.x,p.y-centre.y};
    const double theta = atan2(rel.y,rel.x);
    double R = sqrt((rel.x*rel.x)+(rel.y*rel.y));
    // fisheye undistortion in here please
    //... change R ...
    // back to rectangular
    const Point ret = Point(centre.x+R*cos(theta),centre.y+R*sin(theta));
    fprintf(stderr,"(%d,%d) in (%d,%d) = %f,%f = (%d,%d)\n",p.x,p.y,img.width,img.height,theta,R,ret.x,ret.y);
    return ret;
}
В качестве альтернативы я мог каким-то образом преобразовать изображение из рыбий глаз в прямолинейное, прежде чем найти точки, но я полностью одурачен документация OpenCV, Есть ли простой способ сделать это в OpenCV, и он достаточно хорошо работает, чтобы сделать это с живой видео-лентой?

