我尝试使用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,以防止发生此问题,或者是否有其他方法可以解决此问题?

最佳答案

cvInRange()有多个版本。您想要的一个是 cvInRangeS() ,它将CvScalar作为两个阈值参数。用cvInRange()替换对cvInRangeS()的调用将解决您的问题。

关于c++ - OpenCV cvInRange()无法与cvScalar()一起使用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17820964/

10-09 20:20