我正在尝试使用cvInRange()
库中的OpenCV
函数,但是,当我使用时:
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
以防止此问题发生,还是有其他方法可以解决此问题?
答案 0 :(得分:2)
cvInRange()
有多个版本。你想要的是cvInRangeS()
,它将CvScalar
作为两个阈值参数。用[{1}}替换cvInRange()
的来电可以解决您的问题。
答案 1 :(得分:0)
我认为您的代码错过了1个号码。 我记得cvScalar有4个元组,必须输入每个数字。 例如,如果您使用具有3元组的RGB代码:
RGB = 123,123,123
在cvScalar中你必须输入这样的
cvScalar example = cvScalar(123,123,123,0);