选择轮廓错误

时间:2013-06-23 02:29:22

标签: python opencv contour image-segmentation

我正在研究涉及物体分割的计算机图像处理项目,我找到了轮廓,但我想只绘制其中的一些,例如,第一个用颜色进一步填充它。不幸的是,我一直收到这个错误: 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) 

1 个答案:

答案 0 :(得分:0)

您从绘图功能中收到错误。

我从未使用过opencv python API,但我认为与C ++不同,C和python API具有不同的表示轮廓的风格。

在C ++中,您可以选择轮廓ID并仅绘制该轮廓ID。如果要绘制所有轮廓,请输入id = -1。

在C / Python中,您“指向”矢量中的轮廓以仅绘制该轮廓。因此,等高线(nc)是指向第一个轮廓的指针。如果要绘制所有轮廓,可以使用while(contours!= 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)