java opencv3轮廓_如何在OpenCV中获得单独的轮廓(并填充它们)?

我试图分离图像的轮廓(为了找到统一的区域),所以我应用了cvCanny然后cvFindContours,然后我每次按下一个键时使用以下代码绘制1个轮廓:

for( ; contours2 != 0; contours2 = contours2->h_next ){

cvSet(img6, cvScalar(0,0,0));

CvScalar color = CV_RGB( rand()&255, rand()&255, rand()&255 );

cvDrawContours(img6, contours2, color, cvScalarAll(255), 100);

//cvFillConvexPoly(img6,(CvPoint *)contours2,sizeof (contours2),color);

area=cvContourArea(contours2);

cvShowImage("3",img6);

printf(" %d", area);

cvWaitKey();

}

但是在第一次迭代中它绘制了所有轮廓,在第二次迭代中它绘制了除了一个之外的所有轮廓,第三次绘制除了两个之外的所有轮廓,依此类推 .

如果我使用cvFillConvexPoly函数,它会填充大部分屏幕(虽然我写的这个我意识到凸多边形对我来说不起作用,我需要只填充轮廓内部)

那么,我怎样才能在for的每次迭代中只取一个轮廓,而不是所有剩余的轮廓?

谢谢 .

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值