Перейти к содержимому
Compvision.ru

lindstorm

Пользователи
  • Количество публикаций

    3
  • Зарегистрирован

  • Посещение

Репутация

0 Новичек

О lindstorm

  • Звание
    Новичок
  1. cvGetPerspectiveTransform формула

    Спасибо! Все получилось! Во-первых опечатка, во вторых матрицу warp_matrix надо создавать типа CV_32FC1
  2. cvGetPerspectiveTransform формула

    Сделал по примеру. Только делаю в билдере и поэтому функция cvSolve малость другая Но почему-то массив coeff, в котором должны быть коэффициенты матрицы заполняется нулями. CvMat* warp_matrix = cvCreateMat(3,3,CV_64FC1); double a[8][8], b[8]; double coeff[8]; CvMat A = cvMat( 8, 8, CV_64FC1, a) ; CvMat B = cvMat( 8, 1, CV_64FC1, b ); CvMat X = cvMat( 8, 1, CV_64FC1, coeff ); for(int i =0; i < 4;++i) { a[0] = a[i+4][3] = srcQuad.x; a[1] = a[i+4][5] = srcQuad.y; a[2] = a[i+4][5] = 1; a[3] = a[4] = a[5] = a[i + 4][0] = a[i+4][1] = a[i+4][2] = 0; a[6] = -srcQuad.x * dstQuad.x; a[7] = -srcQuad.y * dstQuad.x; a[i+4][6] = -srcQuad.x * dstQuad.y; a[i+4][7] = -srcQuad.y * dstQuad.y; b = dstQuad.x; b[i+4] = dstQuad.y; } cvSolve( &A, &B, &X );
  3. cvGetPerspectiveTransform формула

    Ребят,такое дело. Пишу курсовой на тему перспективных преобразований. У меня есть исходный массив CvPoint2D32f srcQuad[4], где хранятся координаты исходного массива и CvPoint2D32f dstQuad[4], где хранятся координаты исходного массива. Затем с помощью функции cvGetPerspectiveTransform(srcQuad, dstQuad, warp_matrix), я получаю матрицу перспективного преобразования CvMat* warp_matrix = cvCreateMat(3,3,CV_32FC1); Это все работает, но мне нужно знать как идет расчет этой матрицы. Нашел формулу на http://opencv.willowgarage.com/documentation/geometric_image_transformations.html, там mapmatrix. Не знаю, как ее считать. Вот еще немного : http://code.google.com/p/javacv/issues/detail?id=82#c2 - здесь показано конечное значение матрицы. Спасибо за любую помощь.
×