Vector<Vec3b> 与 OpenCV 中 Vector<int> 的区别
Posted
技术标签:
【中文标题】Vector<Vec3b> 与 OpenCV 中 Vector<int> 的区别【英文标题】:Vector<Vec3b> difference with Vector<int> in OpenCV 【发布时间】:2016-02-26 02:34:35 【问题描述】:我的项目是关于曲棍球桌上的移动冰球检测和位置查找。我需要使用HoughCircles
来检测冰球的圆形。
但是对于这个 hough 算法,我需要创建一个Vector
。我熟悉Vector
概念及其工作原理(基本),但存在区分例如Vector<int> Vec
和Vector<Vec3b> Vec
的问题。
有没有可能让我知道它们在含义和应用上的区别是什么?
【问题讨论】:
我发布了一个答案。如果您需要更多详细信息,您应该更好地解释您想要做什么,为什么需要它们,并通过一个小代码示例更好地说明 亲爱的 Miki 非常感谢您,这很清楚,非常有帮助。我在教科书和其他教程中看到了这种向量定义,我期待在定义 VECTOR 时,我们定义了 VECTOR 的类型和名称,所以我对这个新名称感到困惑,而 VECTOR 确定我问你们是否有帮助我关于这种定义。 【参考方案1】:注意Vector
和vector
是不同的。 vector
是 std::vector
,而 Vector
是 cv::Vector
。即使在实践中差异很小,但它们确实是不同的东西。
我假设您的意思是 std::vector
,但在这种情况下,这也适用于 cv::Vector
。
vector<int>
是一个整数向量。这没什么好看的。
一个vector<Vec3b>
是一个cv::Vec3b
的向量,它是一个OpenCV结构,包含3个uchar
(unsigned char
),即一个8位的类型,可以包含从0到255的数据。它在事实定义为cv::Vec_<uchar, 3>
。 cv::Vec 是一个模板类,表示短数值向量,最多 4 个元素,但这在这里并不重要。
A Vec3b
通常在 OpenCV 中用于存储像素的颜色,通常是 B、G、R 三元组。
【讨论】:
我自己再好不过了。Vec3b
和Matx
的定义也可以参考documentation。以上是关于Vector<Vec3b> 与 OpenCV 中 Vector<int> 的区别的主要内容,如果未能解决你的问题,请参考以下文章