Opencv HSV颜色空间和CvInRangeS函数

Opencv HSV颜色空间和CvInRangeS函数,opencv,hsv,Opencv,Hsv,我想知道cvScalar函数中的每个参数代表什么。我以为它会是HSV,但它似乎没有达到所需的颜色阈值。有人能把参数解释得更清楚一点吗?这意味着 H-色调,S-饱和度,V-值 请查看此处,了解其中的每一项: 颜色主要在色调组件中定义。这里有一个关于HSV空间中阈值设置的好教程: cvInrangeS函数检查数组元素是否位于两个标量之间 第一个标量值表示包含的下边界。 第二个标量值表示排他的上边界 cvInrangeS不关心您以RGB、BGR或HSV等形式给出的值。它只是遍历您作为输入提供的数组元

我想知道cvScalar函数中的每个参数代表什么。我以为它会是HSV,但它似乎没有达到所需的颜色阈值。有人能把参数解释得更清楚一点吗?

这意味着

H-色调,S-饱和度,V-值

请查看此处,了解其中的每一项:

颜色主要在色调组件中定义。这里有一个关于HSV空间中阈值设置的好教程:


cvInrangeS
函数检查数组元素是否位于两个标量之间

第一个标量值表示包含的下边界。 第二个标量值表示排他的上边界

cvInrangeS不关心您以RGB、BGR或HSV等形式给出的值。它只是遍历您作为输入提供的数组元素(第一个参数)(这里是图像),并检查元素是否在指定的范围内。如果是,则选中,否则拒绝。并将结果馈送到最后一个参数,即输出图像

查看它的

现在,如果你给一个HSV图像。所以cvScalar表示要提取的范围的最低和最高颜色

如果是RGB图像,请指定最小和最大RGB颜色

最好使用HSV,因为它提供了良好的效果

现在,如果您想将RGB转换为HSV值,请尝试


(请记住,在OpenCV中,红色和蓝色互换。它是BGR,而不是RGB)。

看起来它有一个很好的描述。看起来第一个标量是最小hsv值,第二个是最大hsv值。它检查所有值是否都在最小值和最大值之间。您知道h、s和v的值是多少吗。例如,我通常会说,对于rgb,值为255。这似乎与HSv不同。我不确定opencv使用的色调通常在0到360度的范围内,尽管它有时表示为0到255以使其适合8位。饱和度和值通常为0到100,但也可以拉伸到0到255以使用完整的8位范围。所以我想说的是,你需要阅读你用来转换为HSV的任何东西的文档。更新了这里的死链接。
cvInRangeS(imgHSV, cvScalar(15, 234, 120), cvScalar(21, 234, 120), imgThreshed);