cvInRangeS(imgHSV, cvScalar(15, 234, 120), cvScalar(21, 234, 120), imgThreshed);我想知道cvScalar函数中的每个参数代表什么。我认为它应该是HSV,但它似乎没有达到所需的颜色阈值。有人能更清楚地解释一下参数吗?
发布于 2012-01-31 09:54:02
这意味着
H色调、S饱和度、V值
请看这里,以了解其中的每一个:
http://en.wikipedia.org/wiki/HSL_and_HSV
颜色主要在色调组件中定义。这里有一个关于HSV空间中阈值的很好的教程:
http://aishack.in/tutorials/thresholding/
发布于 2012-01-31 13:01:44
cvInrangeS函数检查数组元素是否位于两个标量之间。
第一个cvScalar值表示包含的下限。第二个cvScalar值表示排他性上限。
cvInrangeS并不关心你给出的值是RGB、BGR还是HSV等,它只会检查你给出的数组元素(第一个参数)(这里是一个图像),并检查元素是否在你指定的范围内。如果是,将被选中,否则将被拒绝。并将结果提供给最后一个参数,即输出图像。
查看它的documentation
现在,如果你给出一个HSV图像。因此,cvScalar表示要提取的范围的最低和最高颜色。
如果是RGB图像,请指定最小和最大RGB颜色。
最好使用HSV,因为它提供了很好的结果。Read here。
现在,如果您想将RGB转换为HSV值,可以尝试使用here和here.
(请记住,在OpenCV中,红色和蓝色互换。它是BGR,而不是RGB)。
https://stackoverflow.com/questions/9073124
复制相似问题