OpenCV cvInRange()无法使用cvScalar()
OpenCV cvInRange() not Working With cvScalar()
我正试图使用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
,以防止此问题发生,或者是否有其他方法来解决此问题?
cvInRange()
有几个版本。您想要的是cvInRangeS()
,它将CvScalar
作为两个阈值参数。用cvInRangeS()
替换对cvInRange()
的调用将解决您的问题。
我认为您的代码中遗漏了1个数字。我记得cvScalar有4个元组,必须键入每个数字。例如,如果您使用具有3元组的RGB代码:
RGB = 123,123,123
在cvScalar中,您必须像这样键入
cvScalar example = cvScalar(123,123,123,0);