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

我尝试跟随蓝球。要确定最大和最小值,我打开用相机拍摄的照片,打开它的MS画图,然后以H的(180/240)结果翻倍
和(255/240)S和L的结果
然后我重新获得下一个值:
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);

但是当我尝试跟随时,几乎看不到他
我计算错了吗?或者我该怎么做才能改善效果?

最佳答案

首先,为什么将图像转换为HSV然后谈论HSL?如果我没记错的话,它们是不同的色彩空间。

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

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

this online converter也应该为您提供帮助。

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

08-20 03:45