opencv:图像模糊

高斯模糊

opencv:图像模糊_第1张图片

#include 
#include 

using namespace cv;
using namespace std;

int main(int argc, char** argv)
{
    Mat src = imread("f:/images/lena.jpg");
    if (src.empty())
    {
        printf("Could not find the image!\n");
        return -1;
    }

    namedWindow("input", WINDOW_AUTOSIZE);
    imshow("input", src);

    /*
    参数:
        src,dst
        ksize:卷积核大小
        sigmaX:
        sigmaY:默认(0,0)
        borderType:默认 4
    当Size为0,0的时候,sigma参数才会起作用,
    sigmaX与sigmaY一般是一样的
    */
    Mat dst;
    GaussianBlur(src, dst, Size(5,5), 0);
    imshow("dst", dst);

    waitKey(0);
    destroyAllWindows();

    return 0;
}
  • 高斯模糊的锚定位置,默认必须是中心

盒子模糊

opencv:图像模糊_第2张图片

    // 盒子模糊 - 均值模糊
    Mat box_dst;
    boxFilter(src, box_dst, -1, Size(5,5), Point(-1, -1), true, BORDER_DEFAULT);
    imshow("boxFilter demo", box_dst);

盒子模糊的卷积核大小可以设置成各种方向,如15x1, 1x15等

盒子模糊,均值模糊的一个快速版本

高斯模糊与盒子模糊差异

opencv:图像模糊_第3张图片

你可能感兴趣的:(opencv:图像模糊)