选择等高线

2024-04-25 23:10:29 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在进行一个计算机图像处理项目,涉及到物体的分割,我发现了轮廓,但我只想画其中的一些,例如,第一个进一步填充颜色。不幸的是,我经常遇到这样的错误: TypeError:参数“contour”应为CvSeq。你知道吗

下面是发生错误的代码片段。你知道吗

mem=cv.CreateMemStorage()
nc=cv.FindContours(img_th,mem,cv.CV_RETR_LIST,cv.CV_CHAIN_APPROX_SIMPLE,(0,0))  
c=nc[1]
cv.DrawContours(img_adth,c,cv.CV_RGB(255,0,0),cv.CV_RGB(0,255,0),2,2,-1) 

Tags: 项目img参数颜色计算机错误rgbmem
1条回答
网友
1楼 · 发布于 2024-04-25 23:10:29

绘图函数出错。你知道吗

我从未使用OpenCV Python API,但我想不同于C++,C和Python API具有不同的表示轮廓的样式。你知道吗

<>在C++中,你可以选择一个轮廓ID,只画一个。如果要绘制所有轮廓,请输入id=-1。你知道吗

在C/Python中,您可以“指向”向量中的轮廓以仅绘制该轮廓。因此,等高线(nc)是指向第一个等高线的指针。如果你想画所有的轮廓,你可以使用一段时间(轮廓!=null)循环。你知道吗

更清楚的是,我改变了你的代码,尝试使用这个。我不确定,所以让我知道这个是否有效。。你知道吗

...
c = nc.next //until you select exact one
cv.DrawContours(img_adth,c,cv.CV_RGB(255,0,0),cv.CV_RGB(0,255,0),2,2,-1) 

相关问题 更多 >