C++ OpenCV cvInRange()不使用cvScalar()
我试图使用C++ OpenCV cvInRange()不使用cvScalar(),c++,opencv,compiler-errors,C++,Opencv,Compiler Errors,我试图使用OpenCV库中的函数cvInRange(),但是,当我使用: cvInRange(image, cvScalar(100, 0, 0), cvScalar(256, 0, 0), processedImage); 我得到以下错误: cannot convert ‘CvScalar’ to ‘const CvArr* {aka const void*}’ for argument ‘2’ to ‘void cvInRange(const CvArr*, const CvArr*, c
OpenCV
库中的函数cvInRange()
,但是,当我使用:
cvInRange(image, cvScalar(100, 0, 0), cvScalar(256, 0, 0), processedImage);
我得到以下错误:
cannot convert ‘CvScalar’ to ‘const CvArr* {aka const void*}’ for argument ‘2’ to ‘void cvInRange(const CvArr*, const CvArr*, const CvArr*, CvArr*)’
cvInRange(image, cvScalar(100, 0, 0), cvScalar(256, 0, 0), processedImage);
是否有办法将
cvInRange()
的最小和最大阈值指定为CvArr
s以防止出现此问题,或者是否有其他方法解决此问题?有几种版本的cvInRange()
。您需要的参数是,它将CvScalar
作为两个阈值参数。将对cvInRange()
的调用替换为cvInRangeS()
将解决您的问题。我认为您的代码中遗漏了一个数字。
我记得cvScalar有4个元组,必须键入每个数字。
例如,如果您使用具有3个元组的RGB代码:
RGB = 123,123,123
在cvScalar中,您必须这样键入
cvScalar example = cvScalar(123,123,123,0);