图像模糊操作

1.均值滤波

blur(Mat src,Mat dst,Size(xradius,yradius),Point(-1,-1));

输入图像,输出图像,滤波器大小,默认中心点(一般不做修改)

 

2.高斯滤波

GaussianBlur(Mat src,Mat dst,Size(x,y),sigmax,sigmay);

输入图像,输出图像,滤波器大小,x方向上的σ大小,y方向上的σ大小

 

#include"pch.h"
#include<iostream>
#include<opencv2/opencv.hpp>

using namespace std;
using namespace cv;

int main(int argc, char **argv)
{
    Mat src,dst1,dst2;
    src = imread("b.jpg");
    if (src.empty())
    {
        cout << "Load img failed..." << endl;
        return -1;
    }
    imshow("input image", src);

    blur(src, dst1, Size(5,5), Point(-1, -1));
    imshow("blur img", dst1);

    GaussianBlur(src, dst2, Size(5,5), 11, 11);
    imshow("Gaussian blur img", dst2);
    waitKey(0);
    return 0;
}

 

 

 

3.中值滤波

对抑制椒盐噪声有很好的效果(去除噪点)

对滤波器内的像素点进行排序,取中值代替中心像素点,同理也会有最大值最小值滤波

mddianBlur(Mat src,Mat dst,ksize)

ksize大于1且必须为基数

 

 

4.双边滤波

均值模糊会导致边缘像素信息丢失,因为均值滤波是基于平均权重

高斯滤波一定程度上改善了这一问题,但无法完全解决,因为没有考虑到像素值的不同

高斯双边模糊是边缘保留的滤波方法,避免了边缘信息的丢失,保留了图像轮廓不变(磨皮效果)

像素点值的高差没有被抹去,只是使得相同高度的区域变得更加平缓

bilateralFilter(src,dst,d=15,150,3)

15表示计算半径,半径之内的像素点都会纳入计算

150表示像素值的差,如果像素之差在150之内都会被计算

3 d值必须大于0否则声明无效,否则用它来计算d值

 

 双边滤波加上掩膜操作就是美图的美颜操作

#include<iostream>
#include<opencv2/opencv.hpp>

using namespace std;
using namespace cv;

int main(int argc, char **argv)
{
    Mat src,dst1,dst2;
    src = imread("c.jpg");
    if (src.empty())
    {
        cout << "Load img failed..." << endl;
        return -1;
    }
    imshow("input image", src);
/*
    blur(src, dst1, Size(5,5), Point(-1, -1));
    imshow("blur img", dst1);

    //GaussianBlur(src, dst2, Size(5,5), 11, 11);
    //imshow("Gaussian blur img", dst2);
    
    medianBlur(src, dst1, 3);
    imshow("median Blur img", dst1);
*/
    bilateralFilter(src, dst2, 15, 150, 3);
    imshow("bilateral Blur img", dst2);

    Mat resImg;
    Mat Kernel = (Mat_<int>(3, 3) << 0, -1, 0, -1, 5, -1, 0, -1, 0);
    filter2D(dst2, resImg, -1, Kernel, Point(-1, -1), 0);
    imshow("Final Result", resImg);

    waitKey(0);
    return 0;
}

 

posted @ 2019-12-17 10:36  Wangtn  阅读(326)  评论(0编辑  收藏  举报