【问题标题】:Selecting contours error选择轮廓错误
【发布时间】:2013-06-19 21:09:34
【问题描述】:

我正在从事涉及对象分割的计算机图像处理项目,我找到了轮廓,但我只想绘制其中的一些,例如,第一个以进一步填充颜色。不幸的是,我不断收到此错误: 类型错误:参数“轮廓”的预期 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) 

【问题讨论】:

    标签: python opencv contour image-segmentation


    【解决方案1】:

    绘图功能出错。

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

    在 C++ 中,您可以选择一个轮廓 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) 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-06-29
      • 1970-01-01
      • 1970-01-01
      • 2022-01-24
      • 2023-02-23
      • 1970-01-01
      • 2011-07-23
      相关资源
      最近更新 更多