如何设置CvPoint的值

时间:2011-10-28 09:24:12

标签: c++ opencv

我在OpenCV中使用CvPoint结构,我需要为结构的xy字段分配值。

这是我的代码:

CvPoint* P1;
P2[0].x=32;

但程序在尝试设置值时总是阻塞。

有关如何设置这些值的想法吗?

2 个答案:

答案 0 :(得分:4)

首先,P1是指向P1类型对象的指针。要通过指针为对象的成员分配内容,您需要使用 - > 运算符。如果此指针指向数组的开头,则使用运算符[] 来访问单个元素。此运算符返回给定索引的引用,在本例中为 CvPoint&

<强> 1。动态分配单个对象

CvPoint* P1 = new CvPoint(); // default construction of an object of type CvPoint
P1->x = 32;

// do something with P1

// clean up 
delete P1;

<强> 2。动态分配或数组

CvPoint* points = new CvPoint[2]; // array of two CvPoints
points[0].x = 32; // operator[] returns a reference to the CvPoint at the given index
points[1].x = 32;

// do something with points

// clean up
delete[] points;

由于在两个示例中都使用了新运算符,因此在数组的情况下,必须将它们与对删除删除[] 的匹配调用配对。

答案 1 :(得分:3)

没有动态方法:

CvPoint P1;

P1.x=32;

P1.y=32;

//////////////

CvPoint P2[2];

P2[0].x=32;

P2[0].y=32;