删除轮廓树中面积较小的轮廓
来源:互联网 发布:nginx设置多个网站 编辑:程序博客网 时间:2024/06/05 21:15
删除轮廓树中面积较小的轮廓的操作,我看论坛中有很多同学对删除轮廓树中的轮廓 与删除轮廓中的元素 两件事情没搞清楚,特此写了此程序,和大家分享!
代码如下:
代码如下:
- 代码:
#include "cv.h"
#include "cxcore.h"
#include "highgui.h"
CvSeq* contour = NULL;
double minarea = 10000.0;
double tmparea = 0.0;
void main()
{
CvMemStorage* storage = cvCreateMemStorage(0);
IplImage* img_src = cvLoadImage("1.bmp", CV_LOAD_IMAGE_GRAYSCALE);
//显示原始图像
cvNamedWindow("img_src",CV_WINDOW_AUTOSIZE);
cvShowImage("img_src", img_src);
IplImage* img_dst = cvCreateImage(cvGetSize(img_src),IPL_DEPTH_8U,1);
//------------搜索二值图中的轮廓,并从轮廓树中删除面积小于某个阈值minarea的轮廓-------------//
CvScalar color = cvScalar(255,0,0);//CV_RGB(128,0,0);
CvContourScanner scanner = NULL;
//初始化轮廓扫描器
scanner = cvStartFindContours(img_src,storage,sizeof(CvContour),CV_RETR_TREE,CV_CHAIN_APPROX_SIMPLE,cvPoint(0,0));
//开始遍历轮廓树
while (contour=cvFindNextContour(scanner))
{
tmparea = fabs(cvContourArea(contour));
if (tmparea < minarea)
{
cvSubstituteContour(scanner,NULL);//删除当前的轮廓
}
}
//结束轮廓搜索,并返回轮廓树的根节点
contour = cvEndFindContours(&scanner);
//绘制经过删除操作后图像中剩下的轮廓
//cvZero(img_dst);
cvDrawContours(img_dst,contour,color,color,2,1,8,cvPoint(0,0));
cvNamedWindow("dst_contour",CV_WINDOW_AUTOSIZE);
cvShowImage("dst_contour", img_dst);
cvSaveImage("dst_contour.jpg",img_dst);
cvWaitKey(0);
cvReleaseMemStorage(&storage);
cvReleaseImage(&img_src);
cvReleaseImage(&img_dst);
cvDestroyAllWindows();
}
- 删除轮廓树中面积较小的轮廓
- 得到轮廓中面积最大的的轮廓
- opencv3计算图像中轮廓的面积
- 【3】 去除面积较小的连通域,但保留面积为零、长度较长的轮廓
- 计算提取轮廓的面积
- opencv 删除二值化图像中面积较小的连通域
- opencv 删除二值化图像中面积较小的连通域
- opencv 删除二值化图像中面积较小的连通域 .
- opencv 删除二值化图像中面积较小的连通域
- opencv 删除二值化图像中面积较小的连通域
- opencv 删除二值化图像中面积较小的连通域
- opencv 删除二值化图像中面积较小的连通域
- opencv3计算图像中轮廓的面积-滚动条
- OpenCV提取轮廓(去掉面积小的轮廓)
- OpenCV中contourArea轮廓面积算法
- OPENCV 面积最大的外围轮廓
- 计算像素轮廓的像素面积算法
- opencv3计算轮廓的面积-contourArea函数
- android ContentResolver详解
- FZU 2129- 子序列个数 维护前缀和,思维题..
- javascript 循环调用示例介绍
- 十进制转换成二进制
- 复杂事件处理引擎—Esper工作原理
- 删除轮廓树中面积较小的轮廓
- 怎样将桌面快捷方式放入开始菜单
- jdon 彭晨阳大师亲解:DDD DCI CQRS
- VC 线程编程
- oracle客户端环境变量
- 数据文件头块保留大小、ROWID、数据文件最大大小等数据库限制的说明
- db2 增加字段长度
- 把 mysql中的一个字段修改为自增张类型
- jmap命令的使用