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] 范围。