OpenCV C++和cvSmooth

tha*_*ing 1 c c++ opencv

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

cvSmooth(origImage, grayImage1, CV_BLUR,3);
Run Code Online (Sandbox Code Playgroud)

我收到错误:

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

如果我使用:

cvtColor(origImage, grayImage, CV_BGR2GRAY);
Run Code Online (Sandbox Code Playgroud)

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

kar*_*lip 9

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

我建议你花点时间阅读介绍.

另外,如果你检查opencv/modules/imgproc/src/smooth.cpp,你会看到,cv::boxFilter()其实相当于为cvSmooth(CV_BLUR)新的C++接口.