OpenCV中的矩阵类型转换

3
我正在尝试使用OpenCV的filter2D函数将图像与滤波器卷积,并将结果存储到类型为CV_64F的矩阵中。但是目标矩阵的类型发生了变化,我尝试使用assignTo或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个回答

2

我尝试使用OpenCV 2.3运行以下类似的代码,它可以工作,即在调用filter2D后,b的类型为CV_64F

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类型吗?

filter2Db转换为什么类型?

你使用的OpenCV版本是哪个?


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接