使用opencv编写函数 删除二值图像中面积较小的连通区域

这篇博客介绍了一个使用OpenCV函数来删除二值图像中面积小于特定阈值的连通区域的方法。通过找到所有连通域,计算其面积,并仅保留大于阈值的区域,最终将结果保存并显示。
摘要由CSDN通过智能技术生成

函数思想:


思路比较简单   首先找出二值图像中所有的连通域   然后计算所有连通域的面积  设定一个阈值  将面积大于该阈值的轮廓绘制出来 


void  deleteArea(IplImage *src){

    double temparea;
    CvMemStorage *pmemstorage=cvCreateMemStorage();
    CvSeq *pcontourseq = cvCreateSeq(CV_SEQ_ELTYPE_POINT,sizeof(CvSeq),sizeof(CvPoint),pmemstorage);
    double clearblock;
    clearblock = 300000;

    IplImage *g_pdeletesmallareamask=NULL;
    g_pdeletesmallareamask = cvCreateImage(cvGetSize(src),IPL_DEPTH_8U,1);
    cvCopy(src,g_pdeletesmallareamask);

    cout<<"beforecvfindcontour"<<endl;
    cvNamedWindow("pmask",1);
    cvShowImage("pmask",g_pdeletesmallareamask);
    cvFindContours(g_pdeletesmallareamask,pmemstorage,&pcontourseq,sizeof(CvContour),CV_RETR_EXTERNAL);

    IplImage *g_pdeletesmallareacontour = NULL;
    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值