opencv 常用的数据类型(vector、contours的解释)


俗话说: 工欲善其事,必先利其器,学习opencv,连一些基础的数据类型都不清楚,到后面只会寸步难行。

**

当然这句话说给自己听的,谈一下目前遇得的数据类型

1、vec模板类型
1.1 vec介绍
//opencv 中表达形式是
template<typename _Tp, int cn>; 
第一个是变量类型,第二个是个数。
eg:一些特殊的已经做了别名
typedef Vec<int, 4> Vec4i;

其他的同理,以vec4i举例;从类型里面看,就是四个整型变量 ,因为
在这里插入图片描述

1.2 vec赋值和输出
    Vec4i int4,temp;//四维整数;~= int a[3]这样子
	temp = { 2,3,4,5 };
	int4 = { 1,2,3,4};
	int4[0] = 0;//它的第一个整型变量
	cout << temp + int4<<endl; //opencv内部已经做了向量的加减乘除
	cout << int4 << endl;

结果自己试。

2、vector< Vec4i > 数组
2.1 vector< Vec4i > 介绍

没错,我就是卡死在这一个地方,查呀查;菜是原罪。

vector< Vec4i > hierarchy;
首先,他是一个数组的容器,里面放的是4个int的整数。
可能新司机 会有点绕。看这个解释:
vector h ,一次只放一个整数,赋值一个int
vector h1, 一次放四个整数。 给它赋一个 vec4i就可以

2.2 vector< Vec4i > 赋值输出
    Vec4i int4,temp;//四维整数;
    //可以直接赋值  int4(2,3,4,5);
	temp = { 2,3,4,5 };
	int4 = { 1,2,3,4};

	vector<Vec4i> hierarchy;
	hierarchy.push_back(temp);//vector的添加元素,自行查看c++11
	hierarchy.push_back(int4);
	
	cout << hierarchy[0] << endl;
	//输出{ 2,3,4,5 };
	cout<<hierarchy[0][3]<<endl; 
	//输出 5
	cout << hierarchy.size() << endl;
	//输出 2;
3、vector < vector< Point>>
3.1 Point点

①point点的解释
自行转到定义。
在这里插入图片描述
② point点的赋值与输出

Point p=(0, 1); //直接赋值
p = { 1,2 };
cout << p; //输出{1,2}
3.2 vector< Point>

vector< Point>赋值与输出
这个和第一个就很一样,不多解释。

    Point p = (0, 1),p1(0,2),p3(1,4);
	p = { 1,2 };
	vector<Point> pArray;
	pArray.push_back(p);
	pArray.push_back(p1);
	pArray.push_back(p3);
	
	cout << pArray.size() << endl;//输出为3
	cout << pArray.at(1) << endl; //输出为{0,2};
3.2 vector < vector< Point>>
    //[1] point的处理
    Point p = (0, 1),p1(0,2),p3(1,4);
	p = { 1,2 };

    //[2] vector<Point>的处理
	vector<Point> pArray, pArray1, pArray2;
	pArray.push_back(p);
	pArray.push_back(p1);
	pArray.push_back(p3);
	
	pArray1.push_back(p3);
	pArray2.push_back(p1);
	
	//[3] vector<vector<Point>>contours的处理
	vector<vector<Point>>contours;

	contours.push_back(pArray);
	contours.push_back(pArray1);
	contours.push_back(pArray2);
	cout << contours.at(0) << endl;
	cout << contours.size() << endl;

输出结果如下:
在这里插入图片描述
看别人的不如自己,写一遍就会了。

  • 35
    点赞
  • 120
    收藏
    觉得还不错? 一键收藏
  • 9
    评论
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值