基于FPGA图像处理的高斯模糊实现

时间:2025-06-12  作者:Diven  阅读:0

高斯模糊(Gaussian Blur)是高斯低通滤波,可以过滤掉图像的高频部分,保留低频部分,对于去除高斯噪声非常有效果,常常被用于图像去噪中。

基于FPGA图像处理的高斯模糊实现

在做图像模糊的时候最直接的想法就是在当前像素上取一个3*3或者5*5的窗口,把窗口里面的数字相加再求一个平均,得到的均值作为新的当前像素的值,这也就是均值滤波。

高斯滤波认为窗口中的每个像素对当前像素的影响是不一样的,和当前像素越接近影响就越大。因此加权平均更加合理,相近的像素值权重就比较大,相远的权重就小。

在利用高斯滤波的时候首先需要去生成一个高斯核,二维高斯函数如下:

在计算每个像素值时,可以将其视为坐标的原点,这样可以将视为0,就可以简化二维高斯函数如下:

可以使用如下python代码来生成一个高斯核:

import cv2 as cvimport numpy as npsigma = 0.8kernel = np.zeros((3, 3))for i in range(-1, 2): for j in range(-1, 2): kernel[i + 1][j + 1] = 1.0 / (2 * np.pi * sigma * sigma) * np.exp(-((i * i + j * j) / (2.0 * sigma * sigma)))print(kernel)

在OpenCV中也提供了getGaussianKernel这个函数来获取一个高斯核,函数定义如下:

def getGaussianKernel(ksize, sigma, ktype=None)

第一个参数ksize代表高斯核的尺寸,这里会生成一个ksize*1的高斯核。

对于二维的高斯核生成方式如下:

import cv2 as cvimport numpy as npsigma = 0.8opencv_gaussian_kernel_x = cv.getGaussianKernel(3, 0.8)opencv_gaussian_kernel_y = cv.getGaussianKernel(3, 0.8)opencv_gaussian_kernel = opencv_gaussian_kernel_x * opencv_gaussian_kernel_y.Tprint(opencv_gaussian_kernel)

可以看到两者是不一样的,那是因为我们没有对我们自己写的求出来的高斯模板进行归一化。

然后对其进行归一化,使其权重相加的和为1

kernel = kernel / kernel.sum()print(kernel)

可见归一化后的结果就和OpenCV提供的函数计算出来的结果就一样了。

最后对齐转换为整数,左上角的数据变为1

kernel = np.int32(kernel / kernel[0][0])print(kernel)print("1/" + str(kernel.sum()))

这样就可以得到完整的高斯模板了。

完整的python代码如下:

import cv2 as cvimport numpy as npsigma = 0.8opencv_gaussian_kernel_x = cv.getGaussianKernel(3, 0.8)opencv_gaussian_kernel_y = cv.getGaussianKernel(3, 0.8)opencv_gaussian_kernel = opencv_gaussian_kernel_x * opencv_gaussian_kernel_y.Tprint(opencv_gaussian_kernel)kernel = np.zeros((3, 3))for i in range(-1, 2): for j in range(-1, 2): kernel[i + 1][j + 1] = 1.0 / (2 * np.pi * sigma * sigma) * np.exp(-((i * i + j * j) / (2.0 * sigma * sigma)))print(kernel)kernel = kernel / kernel.sum()print(kernel)kernel = np.int32(kernel / kernel[0][0])print(kernel)print("1/" + str(kernel.sum()))
 编辑:黄飞
猜您喜欢

四端子电阻因其高精度和稳定性在电子测量领域得到应用。作为国内知名的电子元器件制造商,三环集团(CCTC)推出了多款高品质的四端子电阻系列产品,深受行业用户的认可...
2013-12-16 11:56:30

电解电容是电子设备中常见的元件。通常用于滤波、耦合等功能。长脚接是电解电容的连接方式,能提高电路的稳定性。本文将探讨电解电容长脚接的相关知识。什么是电解电容?电...
2025-04-13 16:30:36

贴片光敏电阻是一种应用于光电传感器、自动照明系统以及其电子设备中的重要元件。科技的进步,市场上出现了多种型号的贴片光敏电阻,用户在选择时常常感到困惑。本文将对贴...
2025-03-16 18:31:07

你是否好奇过,为什么手机可以用充电宝充电,笔记本电脑可以用不同国家的电源适配器?这背后,都离不开一种叫做DC-DC转换器的小巧装置。简单来说,DC-DC转换器就...
2024-02-23 00:00:00

手机存放挂板是方便实用的收纳工具,帮助我们更好地管理和保护手机。根据不同的需求和设计,手机存放挂板主要可以分为以下几类。首先是墙面挂板,这种挂板通常固定在墙面上...
2018-05-04 00:00:00

无功补偿控制器是用于改善电力系统性能的重要设备,其应用领域。在电力传输和配电系统中,无功补偿控制器能够有效提高电能质量,降低线路损耗,增强电力系统的稳定性。在工...
2018-10-25 00:00:00

稳压二极管是应用于电路中的电子元件,主要用于电压的稳定和过压保护。在现代电子设备中,稳压二极管的性能直接影响到设备的稳定性和安全性。了解稳压二极管的好坏,对于设...
2025-04-07 14:00:34

现代电子设备中,电源模块是至关重要的组成部分。POWER-MODULE-7P_22X9.5MM_TM是一种高效、可靠的电源模块,广泛应用于各类电子产品中。本文将...
2025-02-24 15:51:27

2012-12-26 00:00:00