【问题标题】:OpenCV C++ and cvSmoothOpenCV C++ 和 cvSmooth
【发布时间】:2011-03-27 14:44:20
【问题描述】:

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

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

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

【问题讨论】:

  • 你怎么看?使用 cvtColor 一切正常。 origImage 是来自相机的彩色实时“图片”...
  • 所以你认为我需要图片而不是视频?

标签: c++ c opencv


【解决方案1】:

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

我建议您花点时间阅读introduction

此外,如果您检查opencv/modules/imgproc/src/smooth.cpp,您会发现cv::boxFilter() 与新C++ 接口上的cvSmooth(CV_BLUR) 等效。

【讨论】:

【解决方案2】:

注意不要将 OpenCV 1.x API (CvArr) 与 2.x API (cv::Mat) 混用。 我猜你从某个地方尝试了一个例子。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-12-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多