• 自适应阈值分割


    最大方差阈值分割法在分割过程中对图像上每个像素都是用了相等的阈值,但在实际的情况中,当照明不均匀,有突发噪声或
     
    者背景灰度变化较大时,整幅图像分割时将没有合适的单一阈值,如果仍采用单一的阈值去处理每一个像素,可能会将目标区
     
    域和背景区域错误的划分,因此,诞生了自适应阈值分割的思想,即图像中的每个像素对应的阈值可能不相同。
     
    一个较为简单的自适应阈值选取方法是:每个像素的阈值由自身为中心的邻域窗口确定,把中值 均值 或者高斯卷积作为阈
     
    值,再或者在此基础上加个常量值等等。
     
    下面代码由OPENCV实现
     
    有两种自动化阈值方式1. CV_BLUR 均值
     
                                          2. CV_GUASSIA 高斯
     
    /* 
        函数 : my_AdaptiveThreshold 
        参数:Src 源图像
                 Dst 目的图像
                 method --- 中值滤波CV_BLUR 
                                      高斯滤波CV_GAUSSIAN
                 type --- 二值化类型 THRESH_BINARY CV_THRESH_BINARY_INV
                 blocksize -- 核大小
                 delta ---- 差值 src - mean
         功能 : 自动化阈值分割
         限制 : 8 位灰度图

    */

    void my_AdaptiveThreshold(IplImage * Src,IplImage *Dst , int method, int type , int blocksize, int delta )
    {

        IplImage * mean = cvCreateImage(cvGetSize(Src),Src->depth,Src->nChannels);

        cvSmooth(Src ,mean , method ,blocksize,blocksize );

        for (int i = 0 ; i < Src->height ; ++i)
        {
             unsigned char * usrc =(unsigned char *) Src->imageData + i * Src->widthStep ; 
             unsigned char * umean =(unsigned char *) mean->imageData + i * mean->widthStep ;
             unsigned char * udst =(unsigned char *) Dst->imageData + i * Dst->widthStep;
            for (int j = 0 ; j < Src->width ; ++j)
            {
                if (type ==CV_THRESH_BINARY )
                    udst[j] = (usrc[j] - umean[j]) >= delta ? 255 : 0
                else if (type == CV_THRESH_BINARY_INV)
                    udst[j] = (usrc[j] - umean[j]) >= delta ? 0 : 255
            }
        }

        cvReleaseImage(&mean);
    }





  • 相关阅读:
    Arthas(阿尔萨斯)学习记录
    Apache Flume 学习记录
    XA 协议 学习记录
    Federation(联邦) 架构
    服务注册与发现 Consul Consultemplate
    稳态&敏态
    分布式事务 方案对比
    TongWeb
    tensorflow学习011——Dropout抑制过拟合
    tensorflow学习014——tf.data运用实例
  • 原文地址:https://www.cnblogs.com/xiaomaLV2/p/2268692.html
Copyright © 2020-2023  润新知