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

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);

一切正常。捕获是从笔记本电脑摄像头(实时)进行的。

最佳答案

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

我建议您花点时间阅读introduction

另外,如果您检查opencv/modules/imgproc/src/smooth.cpp,您会在新的C++接口(interface)上看到cv::boxFilter()cvSmooth(CV_BLUR)等效。

07-24 09:22