本文主要是介绍OpenCV09均值模糊(blur)高斯模糊(GaussianBlur),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
/*模糊图像一
Smooth/Blur 是图像处理中最简单和常用的操作之一
使用该操作的原因之一就为了给图像预处理时候减低噪声
使用Smooth/Blur操作其背后是数学的卷积计算
通常这些卷积算子计算都是线性操作,所以又叫线性滤波
假设有6x6的图像像素点矩阵。
卷积过程:6x6上面是个3x3的窗口,从左向右,从上向下移动,
黄色的每个像个像素点值之和取平均值赋给中心红色像素作为它卷积处理之后新的像素值。每次移动一个像素格。
归一化盒子滤波(均值滤波)
高斯滤波-正态分布曲线
均值模糊
- blur(Mat src, Mat dst, Size(xradius, yradius), Point(-1,-1));//Point(-1,-1)表示正中心,一般不改
高斯模糊
- GaussianBlur(Mat src, Mat dst, Size(11, 11), sigmax, sigmay);
其中Size(x, y), x, y 必须是正数而且是奇数
*/
/*模糊图像一
Smooth/Blur 是图像处理中最简单和常用的操作之一
使用该操作的原因之一就为了给图像预处理时候减低噪声
使用Smooth/Blur操作其背后是数学的卷积计算通常这些卷积算子计算都是线性操作,所以又叫线性滤波假设有6x6的图像像素点矩阵。卷积过程:6x6上面是个3x3的窗口,从左向右,从上向下移动,
黄色的每个像个像素点值之和取平均值赋给中心红色像素作为它卷积处理之后新的像素值。每次移动一个像素格。归一化盒子滤波(均值滤波)高斯滤波-正态分布曲线均值模糊
- blur(Mat src, Mat dst, Size(xradius, yradius), Point(-1,-1));//Point(-1,-1)表示正中心,一般不改
高斯模糊
- GaussianBlur(Mat src, Mat dst, Size(11, 11), sigmax, sigmay);
其中Size(x, y), x, y 必须是正数而且是奇数*/
#include <opencv2/opencv.hpp>
#include<iostream>
using namespace std;
using namespace cv;int main(int argc, char *argv[])
{Mat src;Mat dst2;src = imread("E:\\pictures\\test1.jpg",CV_LOAD_IMAGE_ANYCOLOR);if (!src.data){printf("failed to load image");return -1;}char pic_title[] = "orginal pics";char blur_title[] = "blur pics";char gauss_title[] = "gauss pics";namedWindow(pic_title,CV_WINDOW_AUTOSIZE);namedWindow(blur_title, CV_WINDOW_AUTOSIZE);namedWindow(gauss_title, CV_WINDOW_AUTOSIZE);imshow(pic_title,src);//blur(src,dst2,Size(3,3),Point(-1,-1));//blur(src, dst2, Size(31, 3), Point(-1, -1));//x方向模糊blur(src, dst2, Size(3, 31), Point(-1, -1));//y方向模糊imshow(blur_title,dst2);GaussianBlur(src,dst2,Size(5,5),13,13);imshow(gauss_title,dst2);waitKey(0);return 0;
}
这篇关于OpenCV09均值模糊(blur)高斯模糊(GaussianBlur)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!