vector<Point2d> 详解

本文介绍如何利用vector&lt;Point2d&gt;处理图像边框坐标,包括获取图像矩形边框的中心点坐标,并演示如何单独操作这些坐标中的x和y值。

vector<Point2d>这东西让我找了好久,网上介绍vector的东西很多,但是对于数据类型时Point2dPoint2iPoint2f这样的资料却很好。

先来介绍一下基本概念:

Point2i——表示它保存的数值时int类型咯;

Point2f——float

Point2d——double

在此我将根据自己项目中用到的东西加以说明,当然用我最喜欢的手法:实例,来说明问题咯。

例:如何将得到的“图像矩形边框左上角坐标及它的宽和高”保存在centers(保存图像边框的中心点坐标)中。

vector<Point2d> centers;
double x = p[0];  //矩形边框左上角的x坐标
double y = p[1];  //矩形边框左上角的y坐标
double w = p[2];  //矩形边框宽度
double h = p[3];	//矩形边框高度
Rect r(x, y, w, h);  //这一步很重要
centers.push_back((r.br() + r.tl())*0.5);//br():(x+width, y+height)   tl():(x,y)

特别说明:.br()表示保存(x+width, y+height)

                .tl():表示保存(x,y)

                (r.br() + r.tl())*0.5 恰好等于矩形边框的中心点


那么,如何单独操作一个坐标中的x,y呢?

还是用上面的例子:

for (int i = 0; i<centers.size(); i++)
{
<span style="white-space:pre">	</span>double a = centers[i].x;//第i个中心点的x坐标
<span style="white-space:pre">	</span>double b = centers[i].y;//第i个中心点的y坐标
}

 

好了,你可以尽情的操作了,,,


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值