使用 opencv 跟踪的最佳颜色

Posted

技术标签:

【中文标题】使用 opencv 跟踪的最佳颜色【英文标题】:The best color to track using opencv 【发布时间】:2015-06-01 16:59:50 【问题描述】:

我正在使用一个程序来使用 OpenCV c++ 代码跟踪对象(在我的例子中是一支笔)

我想根据对象的颜色来跟踪它,我想轻松地与背景区分开来。

通过测试,我认识到我们称之为磷光色的发光颜色更能够从其他物体中识别出来。. 有人知道为什么它们比其他颜色更容易识别吗?

【问题讨论】:

不显示您的检测代码,可能有些图片没人能回答您的问题。 【参考方案1】:

跟踪对象的最佳方法是将获得的视频从 RGB 转换为 HSV

//convert frame from BGR to HSV colorspace
cvtColor(cameraFeed,HSV,COLOR_BGR2HSV);

而不是使用erode()dilate() 函数来避免混乱。

与使用一定范围的 HUE 值相比,您可以选择一系列颜色。

没有最好的颜色,重要的是你的对象和背景之间的区别。

在 ROI 中搜索绿色

//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);

不过,如果你有一段代码,它会非常有用,只是为了测试你所说的关于发光颜色的内容。

【讨论】:

【参考方案2】:

将图像转换为 hsv,然后通过使用跟踪栏更改 h、s、v 值,您将获得您的对象,然后您可以轻松地跟踪对象。否则您可以利用对象的轮廓特性。

【讨论】:

以上是关于使用 opencv 跟踪的最佳颜色的主要内容,如果未能解决你的问题,请参考以下文章

如何跟踪运动物体的轨迹openCV C++

(附代码)树莓派利用OpenCV的图像跟踪人脸识别等

基于 OpenCV 实战:对象跟踪

如何使用OpenCV实现基于标记的定位

OpenCV 对象跟踪

OpenCV 对象跟踪