首页 > 其他 > 详细

5.均值滤波

时间:2020-07-09 16:58:15      阅读:87      评论:0      收藏:0      [点我收藏+]

一、均值滤波概念

     1 邻域

   技术分享图片

 

 

    2.卷积

        如上图所示,是通过对目标像素的邻域进行加权得到新的目标像素的值,其中这个加权矩阵我们叫做邻域算子(局部算子)。

   技术分享图片

      其中g(x, y)就是我们滤波后希望得到的函数,h(x, y)就是邻域算子,f(x, y)就是原图。那么有公式可以表示:

技术分享图片

 

    3 均值滤波原理

 

 

     均值滤波其实就是对目标像素及周边像素取平均值后再填会目标像素来实现滤波目的的方法。

技术分享图片

 

Mat blur(Mat& img)
{
    if (img.data)
    {
        int height = img.rows;
        int width = img.cols;
        int channel = img.channels();

        Mat out = Mat::zeros(height, width, img.type());
        int count = 0;
        int sum = 0;
        int pad = floor((double)kernel_size / 2);
        for (int y = 0; y < height; y++)
        {
            for (int x = 0; x < width; x++)
            {
                for (int c = 0; c < channel; c++)
                {
                    sum = 0;
                    for (int dy = -pad; dy < pad + 1; dy++)
                    {
                        for (int dx = -pad; dx < pad + 1; dx++)
                        {
                            if ((y - pad > 0) && (x - pad) > 0 && (y + pad) < height && (x + pad) < width)
                                sum += (int)img.at<Vec3b>(y+dy, x+dx)[c];
                        }
                    }
                    sum /= (kernel_size*kernel_size);
                    out.at<Vec3b>(y, x)[c] = (uchar)sum;
                }
            }
        }
        return out;
    }
}

 

      

 

5.均值滤波

原文:https://www.cnblogs.com/xingyuanzier/p/13274322.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!