做电影网站怎样赚钱吗,wordpress amp,wordpress广告不显示,招聘网找工作一、高斯函数的基础
要理解高斯滤波首先要直到什么是高斯函数#xff0c;高斯函数是符合高斯分布的#xff08;也叫正态分布#xff09;的数据的概率密度函数。 高斯函数的特点是以x轴某一点#xff08;这一点称为均值#xff09;为对称轴#xff0c;越靠近中心数据发生…一、高斯函数的基础
要理解高斯滤波首先要直到什么是高斯函数高斯函数是符合高斯分布的也叫正态分布的数据的概率密度函数。 高斯函数的特点是以x轴某一点这一点称为均值为对称轴越靠近中心数据发生的概率越高最终形成一个两边平缓中间陡峭的钟型有的地方也叫帽子图形。
高斯函数的一般形式以00和000为中点 高斯滤波就是使用符合高斯分布的卷积核对图片进行卷积操作所以高斯滤波的重点是如何计算符合高斯分布的卷积核即高斯模板
假设中心点的坐标为00那么取距离它最近的8个坐标为了计算需要设定 1.5则模糊半径为1的高斯模板就如下所示 我们可以观察到越靠近中心值数值越大越边缘的数值越小符合高斯分布的特点。
通过高斯函数计算得到的是概率函数密度 所以我们还有确保着九个点加起来为1这9个点的权重总和等于0.4787147 因此上面9个值还要分别除以0.4787147 得到最终的高斯模板。
注意有的整数的高斯模板是在归一化后的高斯模板的举出是每个数除上左上角的数值然后取证。 有了卷积核计算高斯滤波就简单了假设现在有9个像素点灰度值0-255的高斯滤波计算如下 二、在OpenCV中使用高斯滤波
使用API---GaussiamBlur(src, ksize, sigmaX[, dst[, sigmaY[, borderType]]])
--- kernel:高斯核
---sigmaXx轴的标准差一般只需要设定一个标准差就行
---sigmaYY轴的标准差,默认为0此时sigmaY sigmaX
如果没有指定sigmaY的值会分别从Ksize的宽度和高度计算sigma,此时sigma 0
选择不同的sigma的值会得到不同的平滑效果sigma越大平滑效果越明显。
示例代码如下
import cv2
import numpy as npdog cv2.imread(dog.png)
NEW_DOG cv2.resize(dog, (640, 480))
new_dog cv2.GaussianBlur(NEW_DOG, (5, 5), sigmaX10)cv2.imshow(img, np.hstack((NEW_DOG, new_dog)))
cv2.waitKey(0)
cv2.destroyAllWindows()
输出结果如下