vector<vector<Point>>contours; vector<Vec4i>hierarchy; < < >> 都是什么意思哇 5
vector<vector<Point>>contours; vector<Vec4i>hierarchy; < < >>的意思:
1、duVec4i指的是四个整形数。
2、typedef Vec<int, 4> Vec4i;
3、vector<Vec4i>hierarchy是定义的层级。
4、这个在找边界findcontours的时候会自动生成,这里只是给开辟一个空间。
5、就能算出边界的坐标。
这是openCV里面找边界的程序里面的语句,contours被定义成二维浮点型向量,这里面将来会存储找到的边界的(x,y)坐标。vector<Vec4i>hierarchy是定义的层级。这个在找边界findcontours的时候会自动生成,这里只是给它开辟一个空间。
扩展资料:
opencv中vector类的用法:
1、文件包含:
首先在程序开头处加上#include<vector>以包含所需要的类文件vector,还有一定要加上using namespace std。
2、变量声明:
(1) 例:声明一个int向量以替代一维的数组:vector <int> a;(等于声明了一个int数组a[],大小没有指定,可以动态的向里面添加删除)。
(2)例:用vector代替二维数组.其实只要声明一个一维数组向量即可,而一个数组的名字其实代表的是它的首地址,所以只要声明一个地址的向量即可,即:vector <int *> a。同理想用向量代替三维数组也是一样,vector <int**>a。
vector<vector<Point>>contours; vector<Vec4i>hierarchy; < < >>的意思:
1、Vec4i指的是四个整形数。
2、typedef Vec<int, 4> Vec4i;
3、vector<Vec4i>hierarchy是定义的层级。
4、这个在找边界findcontours的时候会自动生成,这里只是给开辟一个空间。
5、就能算出边界的坐标。
扩展资料:
vector的标准模板库:
vector是C++标准模板库中的部分内容,中文偶尔译作“容器”,但并不准确。它是一个多功能的,能够操作多种数据结构和算法的模板类和函数库。
vector之所以被认为是一个容器,是因为它能够像容器一样存放各种类型的对象,简单地说,vector是一个能够存放任意类型的动态数组,能够增加和压缩数据。
Java中Vector类是允许不同类型元素共存的变长数组,Java.util.Vector提供了向量(Vector)类以实现类似动态数组的功能。
在Java语言中是没有指针概念的,但如果能正确灵活地使用指针又确实可以大大提高程序的质量,比如在C、C++中所谓“动态数组”一般都由指针来实现。为了弥补这点缺陷,Java提供了丰富的类库来方便编程者使用,Vector类便是其中之一。事实上,灵活使用数组也可完成向量类的功能,向量类中提供的大量方法也大大方便了用户的使用。
参考资料来源:百度百科-vector
能举个例子详细说明一下吗,point型是什么样子的,还有Vec4i型是什么样子的
我没有看到你完整的代码 point可能是自己定义的 例如用户可以自己定义Point为
Class Point{
public:
double x;
double y;
void showpoint();
}
Vec4i也是一个类 定义我也不知道 你从代码里跟踪到它的定义部分自己看看吧
你好好看看向量数据类型