我使用程序使用OpenCV c ++代码跟踪对象(在我的例子中是笔)
我想根据颜色跟踪对象,我希望能够轻松地与背景区分开来。
从测试中我发现我们称之为磷色的光泽颜色更能从其他物体中识别出来。 有谁知道它们比其他颜色更容易识别的原因?
答案 0 :(得分:1)
跟踪对象的最佳方法是将从RGB获得的视频转换为HSV
//convert frame from BGR to HSV colorspace
cvtColor(cameraFeed,HSV,COLOR_BGR2HSV);
而不是使用erode()
和dilate()
功能来避免紊乱。
使用一定范围的HUE值,您可以选择一系列颜色。
没有最好的颜色,重要的是你的物体和背景之间的差异。
在投资回报率中搜索绿色
//initial min and max HSV filter values.
//these will be changed using trackbars
int H_MIN = 0;
int H_MAX = 180;
int S_MIN = 0;
int S_MAX = 255;
int V_MIN = 20;
int V_MAX = 50;
//filter HSV image between values and store filtered image to
//threshold matrix
inRange(HSV,Scalar(H_MIN,S_MIN,V_MIN),Scalar(H_MAX,S_MAX,V_MAX),threshold);
然而,对于你的代码,只是为了测试你对光泽颜色的看法,这将非常有用。
答案 1 :(得分:0)
将图像转换为hsv然后通过使用轨迹栏更改h,s,v值,您将获得对象,然后您可以轻松跟踪对象。这样您就可以利用对象的轮廓特征。