我正在使用 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, ®ionPoint); }
void DrawMaskingPoints()
{ cvDrawContours(maskingImage, seq, cvScalar(255,255,255), cvScalar(0,0,0), 0, 1, 8); }
我的代码首先获取轮廓元素并按顺序加载到 SetMaskingPoints(),然后通过 DrawMasingPoints() 绘制轮廓。
我还尝试打印输出,发现 cvSeq 包含点值,但无法绘制。