我使用的是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的轮廓线的交集,但我没有看到它们。
请让我知道我哪里错了。
发布于 2012-11-20 20:27:58
我发现了问题所在。我不得不用
cv.DrawContours(image3,contourmov,cv.CV_RGB(0,255,0),cv.CV_RGB(0,255,0),1,cv.CV_FILLED) 这将填充等高线区域,您将获得交叉点。否则只有线,你会得到线的交点,可能是点。
https://stackoverflow.com/questions/13460237
复制相似问题