Opencv中的错误 - 无法将'cv :: Mat'转换为'const CvArr *

时间:2015-09-29 05:14:11

标签: c++ opencv

我正在编写一个代码,仅从视频源中提取黄色。将其转换为HSV后,我在inRangeS函数中提供该帧。我还有一个上限,下限和输出框架。

这是我的代码: -

cam>>frame;
imshow("Main",frame);
cvtColor(frame,frame,COLOR_BGR2HSV);
imshow("HSV",frame);
cvInRange(frame,cvScalar(20,100,100),cvScalar(30,255,255),redspace);
imshow("Red",redspace);

它出现以下错误: -

error: cannot convert ‘cv::Mat’ to ‘const CvArr* {aka const void*}’ for argument ‘1’ to ‘void cvInRange(const CvArr*, const CvArr*, const CvArr*, CvArr*)’
cvInRange(frame,cvScalar(20,100,100),cvScalar(30,255,255),redspace);

1 个答案:

答案 0 :(得分:2)

您正在使用OpenCV旧C接口的cvInRange功能。

如果您使用cv::Mat,则必须使用C ++界面中的函数cv::inRange,如下所示。

cv::inRange(frame,cv::Scalar(20,100,100),cv::Scalar(30,255,255),redspace);