运维开发网
广告位招商联系QQ:123077622
 
广告位招商联系QQ:123077622

数字图像处理——高斯滤波器【像素级别处理】(python)

运维开发网 https://www.qedev.com 2021-04-14 08:59 出处:51CTO 作者:谁唱江南断肠句
数字图像处理——高斯滤波器【像素级别处理】(python)文章目录数字图像处理——高斯滤波器【像素级别处理】(python)简介代码实现简介高斯滤波通常用它来减少图像噪声以及降低细节层次。这种模糊技术生成的图像,其视觉效果就像是经过一个半透明屏幕在观察图像,这与镜头焦外成像效果散景以及普通照明阴影中的效果都明显不同。高斯平滑也用于计算机视觉算法中的预先处理阶段,以增强图像在不同比例大小下的图...

数字图像处理——高斯滤波器【像素级别处理】(python)

文章目录

  • 数字图像处理——高斯滤波器【像素级别处理】(python)
    • 简介
    • 代码实现

简介

高斯滤波通常用它来减少图像噪声以及降低细节层次。这种模糊技术生成的图像,其视觉效果就像是经过一个半透明屏幕在观察图像,这与镜头焦外成像效果散景以及普通照明阴影中的效果都明显不同。高斯平滑也用于计算机视觉算法中的预先处理阶段,以增强图像在不同比例大小下的图像效果.从数学的角度来看,图像的高斯模糊过程就是图像与正态分布做卷积。由于正态分布又叫作“高斯分布”,所以这项技术就叫作高斯模糊。图像与圆形方框模糊做卷积将会生成更加精确的焦外成像效果。由于高斯函数的傅立叶变换是另外一个高斯函数,所以高斯模糊对于图像来说就是一个低通滤波器。

代码实现

import cv2import numpy as npimport matplotlib.pyplot as plt

img = cv2.imread('Fig0340.tif')  # 测试图片H = img.shape[0]W = img.shape[1]#   产生5*5的Gaussian smoothing filter# Σ=3,h(x,y)=e^((x^2+y^2)/(2*Σ*Σ))h = np.zeros((5, 5))  # 高斯模板for i in range(5):for j in range(5):x = i - 2y = j - 2h[i, j] = np.power(np.e, -(x * x + y * y) / 18)h /= np.sum(h)  # 归一化处理spanImg = np.zeros((H + 4, W + 4, 3), np.uint8)  # 5*5扩充后的图像for i in range(H):for j in range(W):spanImg[i + 2, j + 2] = img[i, j]blurImg = np.zeros((H, W, 3), np.uint8)  # 高斯模糊化之后的图像for i in range(H):for j in range(W):pix = 0for x in range(5):for y in range(5):pix += h[x, y] * spanImg[i + x, j + y, 0]blurImg[i, j, 0] = round(pix)blurImg[i, j, 1] = blurImg[i, j, 0]blurImg[i, j, 2] = blurImg[i, j, 0]plt.subplot(1, 2, 1)plt.title('original image')plt.imshow(img)plt.axis('off')plt.subplot(1, 2, 2)plt.title('blur image')plt.imshow(blurImg)plt.axis('off')plt.show()

数字图像处理——高斯滤波器【像素级别处理】(python)

扫码领视频副本.gif

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号