opencv删除二值图中较小的噪点色块
- CvSeq* contour = NULL;
- double minarea = 100.0;
- double tmparea = 0.0;
- CFileDialog dlg(true);
- if (dlg.DoModal()==IDOK)
- {
- CvMemStorage* storage = cvCreateMemStorage();
- IplImage* img_src= cvLoadImage(dlg.GetPathName(),CV_LOAD_IMAGE_ANYCOLOR);
- IplImage* img_Clone=cvCloneImage(img_src);
- //访问二值图像每个点的值
- uchar *pp;
- //显示原始图像
- cvNamedWindow("img_src",CV_WINDOW_AUTOSIZE);
- cvShowImage("img_src", img_src);
- IplImage* img_dst = cvCreateImage(cvGetSize(img_src),IPL_DEPTH_8U,);
- //------------搜索二值图中的轮廓,并从轮廓树中删除面积小于某个阈值minarea的轮廓-------------//
- CvScalar color = cvScalar(,,);//CV_RGB(128,0,0);
- CvContourScanner scanner = NULL;
- scanner = cvStartFindContours(img_src,storage,sizeof(CvContour),CV_RETR_CCOMP,CV_CHAIN_APPROX_NONE,cvPoint(,));
- //开始遍历轮廓树
- CvRect rect;
- while (contour=cvFindNextContour(scanner))
- {
- tmparea = fabs(cvContourArea(contour));
- rect = cvBoundingRect(contour,);
- if (tmparea < minarea/*||tmparea>4900*/)
- {
- //当连通域的中心点为黑色时,而且面积较小则用白色进行填充
- pp=(uchar*)(img_Clone->imageData + img_Clone->widthStep*(rect.y+rect.height/)+rect.x+rect.width/);
- if (pp[]==)
- {
- for(int y = rect.y;y<rect.y+rect.height;y++)
- {
- for(int x =rect.x;x<rect.x+rect.width;x++)
- {
- pp=(uchar*)(img_Clone->imageData + img_Clone->widthStep*y+x);
- if (pp[]==)
- {
- pp[]=;
- }
- }
- }
- }
- }
- }
- cvSaveImage("c://temp//aav.bmp",img_Clone);
opencv删除二值图中较小的噪点色块的更多相关文章
- 使用OpenCV查找二值图中最大连通区域
http://blog.csdn.net/shaoxiaohu1/article/details/40272875 使用OpenCV查找二值图中最大连通区域 标签: OpenCVfindCoutour ...
- opencv 删除二值化图像中面积较小的连通域
对于上图的二值化图像,要去除左下角和右上角的噪点,方法:使用opencv去掉黑色面积较小的连通域. 代码 CvSeq* contour = NULL; double minarea = 100.0; ...
- opencv统计二值图黑白像素个数
#include "iostream" #include "queue" #include "Windows.h" #include < ...
- 超越OpenCV速度的MorphologyEx函数实现(特别是对于二值图,速度是CV的4倍左右)。
最近研究了一下opencv的 MorphologyEx这个函数的替代功能, 他主要的特点是支持任意形状的腐蚀膨胀,对于灰度图,速度基本和CV的一致,但是 CV没有针对二值图做特殊处理,因此,这个函数对 ...
- S0.4 二值图与阈值化
目录 二值图的定义 二值图的应用 阈值化 二值化/阈值化方法 1,无脑简单判断 opencv3函数threshold()实现 2,Otsu算法(大律法或最大类间方差法) OpenCV3 纯代码实现大津 ...
- 用 Python 通过马尔可夫随机场(MRF)与 Ising Model 进行二值图降噪
前言 这个降噪的模型来自 Christopher M. Bishop 的 Pattern Recognition And Machine Learning (就是神书 PRML……),问题是如何对一个 ...
- zw·准专利·高保真二值图细部切分算法
zw·准专利·高保真二值图细部切分算法 高保真二值图细部切分算法,是中国字体协会项目的衍生作品. 说准专利算法,是因为对于图像算法的标准不了解,虽然报过专利,但不是这方面的,需要咨询专 ...
- c语言实现灰度图转换为二值图
将上篇得到的灰度图转换为二值图,读取像素数据,低于某一值置0,否则设置为255,为得到更好的效果不同图片应采用不同的值 /* 2015年6月2日11:16:22 灰度图转换为二值图 blog:http ...
- C语言实现将彩色BMP位图转化为二值图
CTF做了图片的隐写题,还没有形成系统的认识,先来总结一下BMP图的组成,并通过将彩色图转为二值图的例子加深下理解. 只写了位图二进制文件的格式和代码实现,至于诸如RGB色彩和调色板是什么的一些概念就 ...
随机推荐
- jquery ajax rest invoke
notice: <script type="text/javascript"> $(document).ready(function() { $("#b03& ...
- 将一个tabel加到另一个table
DataTable rate = GetRate(str_catchType,); dt.Merge(rate);//将两个table合并
- 3秒后自动跳转页面【js】
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- HTML教程
HTML文档可以包含的内容 通过不同的标签,HTML文档可以包含不同的内容,比如文本,链接,图片,列表,表格,表单,框架等. 文本 HTML对文本的支持是最丰富的,你可以设置不同级别的标题,分段和换行 ...
- 使用BLADE构建c++工程管理
使用BLADE构建c++工程管理 字数764 阅读2753 评论2 喜欢4 一. c++工程依赖管理 之前在百度一直使用comake2构建c++项目,十分方便.免去了手写Makefile的痛苦,很多项 ...
- 集合 ArrayList
/* * 功能:演示java集合的用法:ArrayList */ package com.jihe; //先引入一个包 import java.util.ArrayList; public class ...
- C# 正则分组捕获
分组语法 捕获 (exp) 匹配exp,并捕获文本到自动命名的组里 (?<name>exp) 匹配exp,并捕获文本到名称为name的组里,也可以写成(?'name'exp) (?:exp ...
- Apache Maven 入门篇 ( 上 )
作者:George Ma 写这个 maven 的入门篇是因为之前在一个开发者会的动手实验中发现挺多人对于 maven 不是那么了解,所以就有了这个想法. 这个入门篇分上下两篇.本文着重动手,用 mav ...
- 源码编译安装 screen
本文转自:http://blog.163.com/oracle_wwf/blog/static/213030127201211191481101/ [root@web1 soft]# wget ftp ...
- Spring Quartz定时调度任务配置
applicationContext-quartz.xml定时调度任务启动代码: <?xml version="1.0" encoding="UTF-8" ...