0
 cvCvtColor(frame, hsv_frame, CV_BGR2HSV);
 cvInRangeS(hsv_frame, hsv_min, hsv_max, thresholded);

我试着跟随蓝球。为了确定最大值和最小值,我打开我用相机拍摄的照片,打开它 MS 油漆并在 H 中以 (180/240) 结果从我的结果中翻倍,然后在 S 和 L 的结果中加倍 (255/240) 然后我收到下一个值:

108 113 115 112 105 H
145 40  107 129 143 S
97  129 96  102 124 L

所以我选择了下一个值:

CvScalar hsv_min = cvScalar( 105, 40, 96 );
CvScalar hsv_max = cvScalar( 115, 140, 130);

但是当我试图跟随它时几乎看不到他我是不是计算错了?或者我能做些什么来改善结果?

4

1 回答 1

2

首先你为什么要把你的形象转换成HSV然后再谈HSL?如果我没记错的话,它们是不同的色彩空间。

要使用颜色空间确定蓝色,请HSV使用以下范围:

Min (H/S/V):  90,  50,  50
Max (H/S/V): 130, 255, 255

这个在线转换器也应该可以帮助你。

并且不要忘记使用代码Hue将图像转换为 HSV 后的值在[0..180]范围内,而 using将为您提供范围[0..360]CV_BGR2HSVCV_BGR2HSV_FULL

于 2012-07-16T12:33:27.963 回答