灰度图像--图像分割 阈值处理之补充说明

学习DIP第56天

转载请标明本文出处:http://blog.csdn.net/tonyshengtan ,出于尊重文章作者的劳动,转载请标明出处!文章代码已托管,欢迎共同开发:https://github.com/Tony-Tan/DIPpro

开篇废话

在前面的介绍中,说到过,影响阈值处理的两个主要问题是目标和背景的大小关系,和噪声对目标的影响,补充说明就是来解决下这两个问题。

算法原理

首先来解决噪声影响,在图像增强的时候提到过,低通滤波和平滑能够减少图像噪声,通过减少噪声,可以一定程度上提高阈值处理的结果。例如未去噪的时候直方图如下:

加入11%的高斯噪声的图像直方图:

使用高斯滤波器进行平滑后的直方图:

但是对于相对较小的目标,直方图上基本看不出目标和背景的差别:

原图:

直方图:

我们的方法是使用边缘处理结果边缘作为Mask,得到Mask为1的原图处的灰度值,有这些灰度值做直方图,可以得到下面:

可以看到相对明显的边界,值得注意的是,这里选取边界的算法一定选用检测结果是外边界和内边界结合的边缘图像。所以我们选用Sobel算子进行边缘检测,边缘检测后的阈值处理(对边缘结果的阈值处理)。最后对Mask出来的灰度集合进行OTSU阈值计算,得出最终结果。

代码

上代码

/*对于小目标物体
 *使用边缘检测结果作为MASK
 *得到MASK为1处的原图灰度集合
 *对这个集合做阈值分割
 *的到最终的结果
 */
void SobelThreshold(double *src,double *dst,int width,int height,double sobel_threshold,int type){
    double *mask=(double *)malloc(sizeof(double)*width*height);
    double *temp=(double *)malloc(sizeof(double)*width*height);
    //use 0.05*width and 0.05*height gaussian mask smooth src
    GaussianFilter(src, temp, width, height, width/25,height/25, (double)width/150.);
    double max=Sobel(temp, mask, NULL, width, height, 5);
    Threshold(mask, mask, width, height, max*sobel_threshold, THRESHOLD_TYPE3);
    ///////////////////////////////////////////////////////////////////////////
    int hist[GRAY_LEVEL];
    double hist_d[GRAY_LEVEL];
    InitHistogram(hist);
    for(int i=0;i<width*height;i++)
        if(mask[i]!=0.0)
            hist[(int)src[i]]++;
    Hist_int2double(hist, hist_d);
    setHist2One(hist_d, hist_d);
    double threshold=findMaxDeta(hist_d);//
    printf("Threshold:%g \n",threshold);
    Threshold(src, dst, width, height, threshold, type);
    free(mask);
    free(temp);

}

结果分析

原图,加入3%的高斯噪声

边缘检测后的直方图:

处理结果:

原图,加入7%的高斯噪声

边缘检测的直方图:

处理结果:

平滑后的阈值处理:

加入11%的高斯噪声的图像,平滑后进行阈值处理:

原图直方图:

平滑后直方图:

总结

为了解决前面所说的两个影响阈值处理的两个重要因素,提出的两种解决方法,也可以使用局部阈值或者可变阈值进行处理。

待续。。。

时间: 2024-10-25 05:47:22

灰度图像--图像分割 阈值处理之补充说明的相关文章

灰度图像--图像分割 阈值处理综述

学习DIP第51天 转载请标明本文出处:http://blog.csdn.net/tonyshengtan ,出于尊重文章作者的劳动,转载请标明出处!文章代码已托管,欢迎共同开发:https://github.com/Tony-Tan/DIPpro 开篇废话 新年第一篇博客,图像分割进行到阈值处理,前面学的边缘检测,然后将边缘连接起来,达到分割区域的目的,用到的基础原理是图像灰度的变化,而阈值处理用到的是阈值的不变,也就是把具有相同或相似的灰度的一类像素定义为一个区域,根据这个特点来定义并区分一

灰度图像--图像分割 阈值处理之平均阈值

学习DIP第52天 转载请标明本文出处:http://blog.csdn.net/tonyshengtan ,出于尊重文章作者的劳动,转载请标明出处!文章代码已托管,欢迎共同开发:https://github.com/Tony-Tan/DIPpro 开篇废话 好久没写博客了,已然不熟练了,过完年整个人都不好了,哈哈,到刚才为止算是把图像分割学习了一下,这两天把学习结果和代码简单总结一下. 前面已经介绍了边缘检测,和边缘修复,阈值处理的基本概念也进行了一定介绍.阈值处理速度快,算法简单,所以应用比

灰度图像--图像分割 阈值处理之谷底阈值、峰顶平均

学习DIP第54天 转载请标明本文出处:http://blog.csdn.net/tonyshengtan ,出于尊重文章作者的劳动,转载请标明出处!文章代码已托管,欢迎共同开发:https://github.com/Tony-Tan/DIPpro 开篇废话 废话开始,这篇介绍两种基于直方图的方法,前面介绍的几种阈值处理方法,可以使用直方图作为处理工具,也可以不使用直方图,直接操作图像也可以,不过建议使用直方图,因为直方图只进行一次计算,免去后续多次的访问全图像素. 今天介绍的算法有意个前提条件

灰度图像--图像分割 阈值处理之P-Tile阈值

学习DIP第53天 转载请标明本文出处:http://blog.csdn.net/tonyshengtan ,出于尊重文章作者的劳动,转载请标明出处!文章代码已托管,欢迎共同开发:https://github.com/Tony-Tan/DIPpro 开篇废话 废话不多说,因为刚才(上一篇)已经说过了,p-tile可能听起来挺可怕,没关系,说个它的对象–中位数,这个都知道吧,数值排排站,然后选出中间那个,或者说,假如数据一共有N个,那么中位数就是排在第N?0.5的那个数:p位数,也叫p分位,可以理

灰度图像--图像分割 阈值处理之局部阈值

学习DIP第57天 转载请标明本文出处:http://blog.csdn.net/tonyshengtan ,出于尊重文章作者的劳动,转载请标明出处!文章代码已托管,欢迎共同开发:https://github.com/Tony-Tan/DIPpro 开篇废话 废话开始,今天说下区域阈值(局部阈值),前面介绍的阈值都是全局阈值,也就是阈值根据全局信息产生,而作用对象也是整幅图像的全部像素,而局部阈值的产生是一个中心像素c(x,y)的邻域的一些属性来计算出一个或多个阈值以及阈值的判别式.这句话比较难

灰度图像--图像分割 综合介绍

学习DIP第40天 转载请标明本文出处:http://blog.csdn.net/tonyshengtan,欢迎大家转载,发现博客被某些论坛转载后,图像无法正常显示,无法正常表达本人观点,对此表示很不满意.有些网站转载了我的博文,很开心的是自己写的东西被更多人看到了,但不开心的是这段话被去掉了,也没标明转载来源,虽然这并没有版权保护,但感觉还是不太好,出于尊重文章作者的劳动,转载请标明出处!!!! 文章代码已托管,欢迎共同开发:https://github.com/Tony-Tan/DIPpro

灰度图像--图像分割 边缘模型

学习DIP第41天 转载请标明本文出处:http://blog.csdn.net/tonyshengtan,欢迎大家转载,发现博客被某些论坛转载后,图像无法正常显示,无法正常表达本人观点,对此表示很不满意.有些网站转载了我的博文,很开心的是自己写的东西被更多人看到了,但不开心的是这段话被去掉了,也没标明转载来源,虽然这并没有版权保护,但感觉还是不太好,出于尊重文章作者的劳动,转载请标明出处!!!! 文章代码已托管,欢迎共同开发:https://github.com/Tony-Tan/DIPpro

灰度图像--图像分割 Robert算子

学习DIP第43天 转载请标明本文出处:http://blog.csdn.net/tonyshengtan,欢迎大家转载,发现博客被某些论坛转载后,图像无法正常显示,无法正常表达本人观点,对此表示很不满意.有些网站转载了我的博文,很开心的是自己写的东西被更多人看到了,但不开心的是这段话被去掉了,也没标明转载来源,虽然这并没有版权保护,但感觉还是不太好,出于尊重文章作者的劳动,转载请标明出处!!!! 文章代码已托管,欢迎共同开发:https://github.com/Tony-Tan/DIPpro

灰度图像--图像分割 霍夫变换(Hough Transform)--直线

学习DIP第50天 转载请标明本文出处:http://blog.csdn.net/tonyshengtan ,出于尊重文章作者的劳动,转载请标明出处!文章代码已托管,欢迎共同开发:https://github.com/Tony-Tan/DIPpro 开篇废话 废话开始,要过年了,到处人心惶惶,沉下心写篇博客,下一篇就等农历新年以后了.马上新年了,希望自己在新年能提高技术,找到一份图像处理的好工作,也希望大家都能学习到更多的知识,做自己喜欢做的事情. 以前基本每天都写博客,坚持了三个月感觉确实有提