OpenCV|OpenCV——高斯滤波
目录
- 一、高斯滤波
- 二、C++代码
- 三、python代码
- 四、结果展示
-
- 1、原始图像
- 2、5x5卷积
- 3、9x9卷积
一、高斯滤波 ? ?高斯滤波是一种线性平滑滤波,适用于消除高斯噪声,广泛应用于图像处理的减噪过程。 [1] 通俗的讲,高斯滤波就是对整幅图像进行加权平均的过程,每一个像素点的值,都由其本身和邻域内的其他像素值经过加权平均后得到。高斯滤波的具体操作是:用一个模板(或称卷积、掩模)扫描图像中的每一个像素,用模板确定的邻域内像素的加权平均灰度值去替代模板中心像素点的值。
二、C++代码
#include
#include using namespace cv;
using namespace std;
int main()
{ Mat img = imread("gauss_noise.png");
if (img.empty())
{cout << "请确认图像文件名称是否正确" << endl;
return -1;
}
Mat result_5, result_9;
//存放含噪声滤波的结果,后面数字代表滤波器尺寸
//调用均值滤波函数blur()进行滤波
GaussianBlur(img, result_5, Size(5, 5), 0, 0);
GaussianBlur(img, result_9, Size(9, 9), 0, 0);
//显示含有高斯噪声图像
imshow("img_gauss", img);
//显示去噪结果
imshow("result_5gauss", result_5);
imshow("result_9gauss", result_9);
waitKey(0);
return 0;
}
三、python代码
import cv2# ----------------------读取图片-----------------------------
img = cv2.imread('gauss_noise.png')
# ----------------------高斯滤波-----------------------------
result_5 = cv2.GaussianBlur(img, (5, 5), 0)# 5x5
result_9 = cv2.GaussianBlur(img, (9, 9), 0)# 9x9
# ----------------------显示结果-----------------------------
cv2.imshow('origion_pic', img)
cv2.imshow('5x5_filtered_pic', result_5)
cv2.imshow('9x9_filtered_pic', result_9)
cv2.waitKey(0)
四、结果展示 1、原始图像
2、5x5卷积
3、9x9卷积 【OpenCV|OpenCV——高斯滤波】
文章图片
推荐阅读
- 急于表达——往往欲速则不达
- 慢慢的美丽
- 《真与假的困惑》???|《真与假的困惑》??? ——致良知是一种伟大的力量
- 2019-02-13——今天谈梦想()
- 考研英语阅读终极解决方案——阅读理解如何巧拿高分
- Ⅴ爱阅读,亲子互动——打卡第178天
- 低头思故乡——只是因为睡不着
- 取名——兰
- 每日一话(49)——一位清华教授在朋友圈给大学生的9条建议
- 广角叙述|广角叙述 展众生群像——试析鲁迅《示众》的展示艺术