我的项目是关于曲棍球桌上的移动冰球探测和定位。我需要使用HoughCircles
来检测圆盘的圆形形状。
但是对于这个霍夫阿尔科特,我需要做一个Vector
。我熟悉Vector
概念及其工作原理(基本),但存在区分问题,例如Vector<int> Vec
和Vector<Vec3b> Vec
。
有人可以告诉我他们在意义和应用方面的差异吗?
答案 0 :(得分:3)
注意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个元素,但这在这里并不重要。
在OpenCV中通常使用Vec3b
来存储像素的颜色,通常是B,G,R三元组。