请问Opencv中 Vec<int, n>啥意思

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了请问Opencv中 Vec<int, n>啥意思相关的知识,希望对你有一定的参考价值。

如题。typedef Vec<int, 4> Vec4i;这个定义怎么解释呢。每个数组单元由4个整形组成吗?
求解释。谢谢

Vec是一个Opencv的向量模板类。
Vec<int,n>就是用类型int和n将向量模板类Vec做一个实例化。
简单的说,Vec<int,n>就是一个向量类型。可以用来定义向量对象等。
其中,第一个参数int表示Vec中存储的为int类型,第二个参数n为一个整型值,表示每个Vec对象中存储的是n个int值,即n维向量。
比如,Vec<int,2> 表示的就是二维向量,每个对象中存储2个int类型的值x,y,数学含义为x+yi。
参考技术A Vec是一个向量,就比如线性代数的里 a箭头 (箭头写在a上面的)。里面有4个元素<a1,a2,a3,a4>,a1,a2,a3,a4是int类型本回答被提问者和网友采纳

Vector<Vec3b> 与 OpenCV 中 Vector<int> 的区别

【中文标题】Vector<Vec3b> 与 OpenCV 中 Vector<int> 的区别【英文标题】:Vector<Vec3b> difference with Vector<int> in OpenCV 【发布时间】:2016-02-26 02:34:35 【问题描述】:

我的项目是关于曲棍球桌上的移动冰球检测和位置查找。我需要使用HoughCircles 来检测冰球的圆形。 但是对于这个 hough 算法,我需要创建一个Vector。我熟悉Vector 概念及其工作原理(基本),但存在区分例如Vector&lt;int&gt; VecVector&lt;Vec3b&gt; Vec 的问题。

有没有可能让我知道它们在含义和应用上的区别是什么?

【问题讨论】:

我发布了一个答案。如果您需要更多详细信息,您应该更好地解释您想要做什么,为什么需要它们,并通过一个小代码示例更好地说明 亲爱的 Miki 非常感谢您,这很清楚,非常有帮助。我在教科书和其他教程中看到了这种向量定义,我期待在定义 VECTOR 时,我们定义了 VECTOR 的类型和名称,所以我对这个新名称感到困惑,而 VECTOR 确定我问你们是否有帮助我关于这种定义。 【参考方案1】:

注意Vectorvector 是不同的。 vectorstd::vector,而 Vectorcv::Vector。即使在实践中差异很小,但它们确实是不同的东西。

我假设您的意思是 std::vector,但在这种情况下,这也适用于 cv::Vector


vector&lt;int&gt; 是一个整数向量。这没什么好看的。

一个vector&lt;Vec3b&gt;是一个cv::Vec3b的向量,它是一个OpenCV结构,包含3个ucharunsigned char),即一个8位的类型,可以包含从0到255的数据。它在事实定义为cv::Vec_&lt;uchar, 3&gt;。 cv::Vec 是一个模板类,表示短数值向量,最多 4 个元素,但这在这里并不重要。

A Vec3b 通常在 OpenCV 中用于存储像素的颜色,通常是 B、G、R 三元组。

【讨论】:

我自己再好不过了。 Vec3bMatx的定义也可以参考documentation。

以上是关于请问Opencv中 Vec<int, n>啥意思的主要内容,如果未能解决你的问题,请参考以下文章

OpenCV其他常用数据类型

在 OpenCV 中应用蒙版

vector定义方式

使用 O(m) 空间在 O(n) 时间内对向量<int>(n) 进行排序?

OpenCV C++:根据存储在 int 向量中的索引为 Mat 类型数据创建列范围

请问opencv的GPU模块里,与GpuMat挂钩的PtrStep 和 PtrStepSz两个数据结构有啥区别?