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

学习DIP第53天

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

开篇废话

废话不多说,因为刚才(上一篇)已经说过了,p-tile可能听起来挺可怕,没关系,说个它的对象–中位数,这个都知道吧,数值排排站,然后选出中间那个,或者说,假如数据一共有N个,那么中位数就是排在第N?0.5的那个数;p位数,也叫p分位,可以理解为数值排排站以后第N?p的那个数。

p-tile均值

根据上面对p分位的理解,可以看出这个阈值处理方法是半自动的方法,也就是阈值的生成需要人工控制,就是要手动输入p分位的p,下面代码中p取值(0,1]

代码

/*********************************************************************************/
/*********************************************************************************/
//阈值法,p分位法
//p分位为统计学方法
//当p为0.5时为中位数
void PtileThreshold(double *src,double *dst,double p_value,int width,int height,int type){/*0<p_value<1*/
    int total_pix_count=width*height;
    int pix_count=0;
    int hist[GRAY_LEVEL];
    double threshold_value=0.0;
    InitHistogram(hist);
    setHistogram(src, hist, width,height);
    for(int i=0;i<GRAY_LEVEL;i++){
        pix_count+=hist[i];
        if(pix_count>=(int)((double)total_pix_count*p_value)){
            threshold_value=(double)i;
            break;
        }
    }
    Threshold(src,dst, width, height, threshold_value,type);
}

效果

原图一个只有两个灰度值的图像,这里使用对其加入5%的高斯噪声,

未处理图像:

未处理时的直方图:

观察直方图,估计出最佳阈值位置:

下面使用不同的p值来测试结果:

可以看出,第二次(我试了好久。。。。。)测试结果能够得出最好结果。



lena图处理测试:

总结

首先确定p值需要经验或实验,所以P-Tile方法应用于自适应有些困难,其次,影响处理结果的因素是目标与背景大小的比例,目标过大背景过小或者背景过大目标过小,都会对测试结果产生很大影响,其次是噪声,噪声也会对实验结果产生影响。

待续。。。

时间: 2024-10-29 00:26:22

灰度图像--图像分割 阈值处理之P-Tile阈值的相关文章

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

学习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 开篇废话 废话开始,这篇介绍两种基于直方图的方法,前面介绍的几种阈值处理方法,可以使用直方图作为处理工具,也可以不使用直方图,直接操作图像也可以,不过建议使用直方图,因为直方图只进行一次计算,免去后续多次的访问全图像素. 今天介绍的算法有意个前提条件

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

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

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

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

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

学习DIP第56天 转载请标明本文出处:http://blog.csdn.net/tonyshengtan ,出于尊重文章作者的劳动,转载请标明出处!文章代码已托管,欢迎共同开发:https://github.com/Tony-Tan/DIPpro 开篇废话 在前面的介绍中,说到过,影响阈值处理的两个主要问题是目标和背景的大小关系,和噪声对目标的影响,补充说明就是来解决下这两个问题. 算法原理 首先来解决噪声影响,在图像增强的时候提到过,低通滤波和平滑能够减少图像噪声,通过减少噪声,可以一定程度

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

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

阈值分割之迭代选择阈值法

function [Ibw, thres] = autoThreshold(I) % 迭代法自动阈值分割 % % 输入:I - 要进行自动阈值分割的灰度图像 % 输出:Ibw - 分割后的二值图像 % thres - 自动分割采用的阈值 thres = 0.5 * (double(min(I(:))) + double(max(I(:)))); %初始阈值 done = false; %结束标志 while ~done g = I >= thres; Tnext = 0.5 * (mean(I(

灰度图像--图像分割 Canny边缘检测

学习DIP第48天 转载请标明本文出处:http://blog.csdn.net/tonyshengtan ,出于尊重文章作者的劳动,转载请标明出处!文章代码已托管,欢迎共同开发: https://github.com/Tony-Tan/DIPpro 开篇废话 废话开始,Canny大名鼎鼎,大家都称之为Canny算子,包括wiki上也是写的Canny detector,但是按照我的理解,我觉得叫做Canny算法比较合适,但如果叫做算子,那也应该叫做复合算子,因为Canny本身并不是一个线性模板(