OpenCV C ++和cvSmooth

时间:2011-03-27 14:44:20

标签: c++ c opencv

任何人都知道可能存在什么问题:

cvSmooth(origImage, grayImage1, CV_BLUR,3);

我收到了错误:

error: cannot convert `cv::Mat' to `const CvArr*' for argument `1' to `void 
cvSmooth(const CvArr*, CvArr*, int, int, int, double, double)'

如果我使用:

cvtColor(origImage, grayImage, CV_BGR2GRAY);

一切正常。捕获来自笔记本电脑相机(实时)。

2 个答案:

答案 0 :(得分:9)

cv::Mat是OpenCV的C ++版本的新结构。 cvSmooth()来自旧的C API。不要将C接口与C ++混合使用!

我建议您花点时间阅读introduction

此外,如果您选中opencv/modules/imgproc/src/smooth.cpp,您会在新的C ++界面上看到cv::boxFilter()cvSmooth(CV_BLUR)相同。

答案 1 :(得分:2)

注意不要将OpenCV 1.x API(CvArr)与2.x API(cv :: Mat)混合使用。 我想你是从某个地方尝过一个例子的。