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 包含点值,但无法绘制。

4

1 回答 1

1

尝试用这个替换0in :。cvCreateSeq(CV_SEQ_KIND_CURVE|CV_SEQ_ELTYPE_POINT|CV_SEQ_FLAG_CLOSED)

于 2013-04-26T07:26:04.277 回答