/*模糊图像一 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
#include
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;
}