gpt4 book ai didi

c++ - 使用自定义序列点绘制轮廓?

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:19:02 29 4
gpt4 key购买 nike

我正在使用 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由点值组成,但无法绘制。

最佳答案

尝试将 cvCreateSeq 中的 0 替换为:(CV_SEQ_KIND_CURVE|CV_SEQ_ELTYPE_POINT|CV_SEQ_FLAG_CLOSED)

关于c++ - 使用自定义序列点绘制轮廓?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12349988/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com