Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ OpenCV cvInRange()不使用cvScalar()_C++_Opencv_Compiler Errors - Fatal编程技术网

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