преобразование типа матрицы в opencv - PullRequest
3 голосов
/ 27 июня 2011

Я пытаюсь свернуть изображение с фильтром и сохранить его в матрице типа CV_64F с помощью функции filter2D в opencv.но тип матрицы назначения изменился, и я пытаюсь изменить его обратно на CV_64F с помощью функции ConvertTo assignTo 0r, но я не могу это сделать.Может кто-нибудь помочь?Это строки моего кода

                     cv::Mat op = cv::Mat(25,25,a.type(),Arr1); // a is the image matrix and op is the filter.
         cv::Point anchor = Point(-1,-1);
         cv::Mat b = cv::Mat(a.size(),CV_64F);
         cv::Mat l = cv::Mat(a.size(),CV_64F);
         cv::Mat m = cv::Mat(a.size(),CV_64F);

        //prnmt(a);

         filter2D(a,b,-1,op,anchor,0,BORDER_DEFAULT);
         b.assignTo(l,CV_64F);

1 Ответ

2 голосов
/ 28 июля 2011

Я попытался запустить следующий подобный код с OpenCV 2.3, и он работал, т.е. тип b был CV_64F после вызова filter2D:

cv::Mat a(100, 100, CV_64F); 
cv::Mat op(25, 25, CV_64F);
cv::Mat b(a.size(), CV_64F);
cv::Mat l(a.size(), CV_64F);
cv::Mat m(a.size(), CV_64F);
cv::Point anchor(-1, -1);

filter2D(a, b, -1, op, anchor, 0, cv::BORDER_DEFAULT);

Вы уверены aCV_64F в вашем коде?

К какому типу b конвертируется в filter2D?

В какую версию OpenCV вы используете?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...