opencv中的矩阵类型转换

时间:2011-06-27 06:51:57

标签: opencv

我正在尝试使用过滤器对图像进行卷积,并在opencv中使用filter2D函数将其存储到CV_64F类型的矩阵中。但目标矩阵的类型得到改变,我尝试在assignTo 0r ConvertTo函数的帮助下将其更改回CV_64F,但我无法这样做。有人可以帮忙吗?这是我的代码行

                     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 个答案:

答案 0 :(得分:2)

我尝试使用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?