任何人都知道可能存在什么问题:
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);
一切正常。捕获来自笔记本电脑相机(实时)。
答案 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)混合使用。 我想你是从某个地方尝过一个例子的。