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色彩和调色板是什么的一些概念就 ...
随机推荐
- sql优化之not in
sql : select ID from awhere XX <> 0 and ID not in (select ID from b) 4万多条记录,执行了316秒,无法接受. 优化 ...
- SortedMap接口
SortedMap接口是排序接口,只要是实现了此接口的子类,都属于排序的子类,TreeMap也是此接口的一个子类. import java.util.Map; import java.util.Sor ...
- ansible加密命令
ansible-vault用于配置文件加密,如编写的playbook配置文件中包含敏感信息,不希望其他人随意查看,ansible-valut可加密/解密这个配置文件,刚试了下也可以加密txt文档,猜想 ...
- Which is the best opencv or matlab for image processing?
http://www.researchgate.net/post/Which_is_the_best_opencv_or_matlab_for_image_processing Annette Mor ...
- nginx和fpm的进程数配置和502,504错误
502 和 php-fpm.conf 1.php-cgi进程数不够用.php执行时间长,导致没有空闲进程处理新请求. 2.php-cgi进程死掉.php-fpm超时时间短,当前进程执行超时关闭连接. ...
- centos 7.0 编译 安装mysql 5.6.22 过程 已完成~ 成功~ 撒花~
mysql 下载目录/usr/local/srcmysql 解压目录 /usr/local/bin/mysql GitHub https://github.com/mysql/mysql-server ...
- Effective Objective-C 2.0 — 第一条:了解Objective-C语言的起源
第一条: 了解Objective-C语言的起源 由Smalltalk演化而来,消息型语言的鼻祖(messaging structure)而非 (function calling)函数调用 //Mess ...
- jQuery 遍历 - find() 方法
实例 搜索所有段落中的后代 span 元素,并将其颜色设置为红色: $("p").find("span").css('color','red'); 详情:htt ...
- motto11
我们应该这样来提高自己表达能力:在和人交流的时候,以欣赏的态度接受对方的观点,如果不太同意对方的观点,不能说对方的观点不好,而应该说,你的想法(观点)很好,但我认为,xxxxxx这样做会更好些. 这样 ...
- jQuery.imgLazyLoad图片懒加载组件
一.前言 当一个页面中请求的图片过多,而且图片太大,页面访问的速度是非常慢的,对用户的体验非常不友好:使用图片懒加载,可以减轻服务器的压力,增加页面的访问量,这里主要是总结一下我自己写的图片懒加载组件 ...