OpenCV学习第九篇:图像模糊(卷积)

模糊原理:
Smooth/Blur是图像处理中最简单和常用的操作之一
使用该操作的原因之一就为了给图像预处理时候减低噪声
使用Smooth/Blur操作其背后是数学的卷积计算
通常这些卷积算子计算都是线性操作,所以又叫线性滤波
OpenCV学习第九篇:图像模糊(卷积)_第1张图片
假设6x6的图像像素点矩阵
黄色3x3区域代表算子

卷积过程:
6x6上面是个3x3的窗口,从左向右,从上向下移动,黄色的每个像素点值之和取平均值赋给中心红色像素作为它卷积处理之后新的像素值,每次移动一个像素格!

均值模糊:
-blur(Mat src,Mat dst,Size(xradius,yradius),Point(-1,-1));
高斯模糊:
-GaussianBlur(Mat src,Mat dst,Size(11,11),sigmax,sigmay);
其中Size(x,y),x,y必须是正数而且是奇数

#include 
#include 

using namespace std;
using namespace cv;

int main(int argc,char** argv) {
    Mat src, dst;
    src = imread("F:/识图/645-140GG51041.JPG");
    if (src.empty()) {
        printf("could not found image!");
        return -1;
    }
    char input_title[] = "input image";
    char output_title[] = "output image";
    namedWindow(input_title, CV_WINDOW_AUTOSIZE);
    namedWindow(output_title, CV_WINDOW_AUTOSIZE);
    imshow(input_title, src);
    //均值模糊
    blur(src, dst, Size(15, 15), Point(-1, -1));
    Mat gblur;
    //高斯模糊
    GaussianBlur(src, gblur, Size(11, 11), 11, 11);
    imshow("Gaussian blur", gblur);
    imshow(output_title, dst);
    waitKey(0);
    return 0;
}

这里是效果:
OpenCV学习第九篇:图像模糊(卷积)_第2张图片

你可能感兴趣的:(OpenCV学习旅程)