Opencv-图像均值与高斯模糊

本文深入探讨了图像处理中的均值模糊与高斯模糊技术,详细解释了两种模糊方法的原理及应用。通过Python和C++代码示例,展示了如何利用OpenCV库实现图像的均值与高斯模糊效果。

图像均值与高斯模糊

知识点

图像均值与高斯模糊
均值模糊 是卷积核的系数完全一致,高斯模糊考虑了中心像素距离的影响,对距离中心像素使用高斯分布公式生成不同的权重系数给卷积核,然后用此卷积核完成图像卷积得到输出结果就是图像高斯模糊之后的输出。
OpenCV高斯模糊 API函数
void GaussianBlur(
InputArray src,
OutputArray dst,
Size ksize, // Ksize为高斯滤波器窗口大小
double sigmaX, // X方向滤波系数
double sigmaY=0, // Y方向滤波系数
int borderType=BORDER_DEFAULT // 默认边缘插值方法
)
当Size(0, 0)就会从sigmax开始计算生成高斯卷积核系数,当时size不为零是优先从size开始计算高斯卷积核系数
在这里插入图片描述
在这里插入图片描述

python代码

import cv2 as cv
import numpy as np


src = cv.imread("C:/Users/qqxd/Desktop/opencvcode/images/hist_02.jpg")
cv.namedWindow("input", cv.WINDOW_AUTOSIZE)
cv.imshow("input", src)

dst1 = cv.blur(src, (5, 5))
dst2 = cv.GaussianBlur(src, (5, 5), sigmaX=15)
dst3 = cv.GaussianBlur(src, (0, 0), sigmaX=15)

cv.imshow("blur ksize=5", dst1)
cv.imshow("gaussian ksize=5", dst2)
cv.imshow("gaussian sigmax=15", dst3)

cv.waitKey(0)
cv.destroyAllWindows()

c++代码

#include <opencv2/opencv.hpp>
#include <iostream>

using namespace cv;
using namespace std;

int main(int artc, char** argv) {
	Mat src = imread("C:/Users/qqxd/Desktop/opencvcode/images/hist_02.jpg");
	if (src.empty()) {
		printf("could not load image...\n");
		return -1;
	}
	namedWindow("input", WINDOW_AUTOSIZE);
	imshow("input", src);

	Mat dst1, dst2;
	blur(src, dst1, Size(5, 5), Point(-1, -1), 4);
	GaussianBlur(src, dst2, Size(5, 5), 15, 0, 4);


	imshow("blur", dst1);
	imshow("gaussian blur", dst2);

	waitKey(0);
	return 0;
}

运行结果如下:
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值