【问题标题】:How to detect Contour intersection in opencv python如何在opencv python中检测轮廓相交
【发布时间】:2012-11-19 18:54:04
【问题描述】:

我使用的是opencv python接口(不是cv2)

contourmov =  cv.FindContours(image1, storage, cv.CV_RETR_CCOMP, cv.CV_CHAIN_APPROX_SIMPLE)
contourmove = cv.FindContours(image2, storage, cv.CV_RETR_CCOMP, cv.CV_CHAIN_APPROX_SIMPLE)

我有来自 image1 和 image2 的轮廓,我需要两个轮廓之间的交集。

我用过

image3 = cv.CloneImage(image1)
cv.Set(image1, cv.Scalar(0,0,0));
image4 = cv.CloneImage(image1)
cv.Set(image2, cv.Scalar(0,0,0));
cv.DrawContours(image3,contourmov,cv.CV_RGB(0,255,0),cv.CV_RGB(0,255,0),1)
cv.DrawContours(image4,contourmove,cv.CV_RGB(0,255,0),cv.CV_RGB(0,255,0),1)
cv.And(image3,image4,image3)

所以我假设 image3 将具有 image1 和 image2 轮廓的交集,但我没有看到它们。

请让我知道我哪里出错了。

【问题讨论】:

    标签: python opencv


    【解决方案1】:

    我发现了问题所在。我不得不使用

     cv.DrawContours(image3,contourmov,cv.CV_RGB(0,255,0),cv.CV_RGB(0,255,0),1,cv.CV_FILLED) 
    

    这会填充轮廓区域,您将获得交点。否则只有线,你会得到可能是点的线交点。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-12-17
      • 2014-07-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-20
      • 2016-03-27
      • 1970-01-01
      相关资源
      最近更新 更多