我正在尝试使用滤波器对图像进行卷积,并借助 opencv 中的 filter2D 函数将其存储到 CV_64F 类型的矩阵中。但目标矩阵的类型发生了变化,我尝试借助 allocateTo 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);
我尝试使用 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);
你确定吗a
is CV_64F
在你的代码中?
属于什么类型b
转换为filter2D
?
您使用的是哪个版本的 OpenCV?
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)