2012-09-10 20 views
4

我正在使用OpenCV使用cvFindContours()來查找圖像的輪廓區域。然後,我想用不同的座標(和不同的像素對應)繪製這個輪廓...因此,我使用cvGetSeqElem()獲取所有輪廓元素點並轉換像素對應並創建自定義cvSeq並將每個元素加載到定製的cvSeq。但是,當我嘗試繪製具有自定義cvSeq的輪廓時,圖像中沒有響應。使用自定義序列點繪製輪廓?

爲了這項工作的目的,我想使用輪廓蒙版圖像。

碼是這樣的:

<!-- language: c++ --> 

CvMemStorage *memStorage = cvCreateMemStorage(0); 
CvSeq* seq = cvCreateSeq(0, sizeof(CvSeq), sizeof(CvPoint), memStorage); 

void SetMaskingPoints(CvPoint point) 
{ cvSeqPush(seq, &regionPoint); } 
void DrawMaskingPoints() 
{ cvDrawContours(maskingImage, seq, cvScalar(255,255,255), cvScalar(0,0,0), 0, 1, 8); } 

我的代碼與得到輪廓元件和負載SetMaskingPoints()作爲順序地啓動,然後由DrawMasingPoints畫出輪廓()。

我也嘗試打印輸出,發現cvSeq由點值組成,但無法繪製。

回答

1

嘗試用cvCreateSeq替換0用此:(CV_SEQ_KIND_CURVE|CV_SEQ_ELTYPE_POINT|CV_SEQ_FLAG_CLOSED)