2011-10-28 20 views
1

我在OpenCV中使用CvPoint結構,我需要爲該結構的xy字段指定一個值。如何設置CvPoint的值

這裏是我的代碼:

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

但是,這個項目一直阻止試圖設置的值。

有關如何設置這些值的任何想法?

+0

您已經創建了名的指針變量'P1'&你試圖賦值指針變量'P2'?你需要做一些事情,比如'cvPoint P1 = cvPoint(32,32);' –

+0

因爲問題被標記爲C++,無論如何,最好使用'cv :: Point'對象。 Othwerwise把這個問題重新提交給C可能是一個好主意。 –

回答

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; 

由於在這兩個例子中,它是動態分配強制將它們與匹配的電話配對刪除刪除[]以防萬一的數組。

2

沒有動態方法:

CvPoint P1; 

P1.x=32; 

P1.y=32; 

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

CvPoint P2[2]; 

P2[0].x=32; 

P2[0].y=32;