首页 > 技术 > 内容

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

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

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

在做图像模糊的时候最直接的想法就是在当前像素上取一个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()))
 编辑:黄飞

猜您喜欢


现代电子设备中,连接器的作用不可忽视。CONN_20.77X22.3MM_TM是一种重要的连接器型号,广泛应用于各种电子产品中。本文将对该连接器的特性、应用领域...
2025-02-26 14:30:17
电池作为现代社会重要的能量来源,其应用领域日益,从手机、笔记本电脑到电动汽车、储能电站,电池技术的重要性不言而喻。 而电池管理系统(BMS)作为电池的大脑,对电...
2024-10-06 00:00:00
自恢复保险丝作为重要的保护元件,有着着不可替代的作用。LIANG MENG(亮盟照明)作为业内知名品牌,凭借其高品质的自恢复保险丝产品,赢得了广大客户的信赖。本...
2021-11-06 11:56:30
预售连接器作为现代电子设备中不可少的组成部分,其参数直接影响到设备的性能和稳定性。在选择预售连接器时,首先需关注其电气参数,包括额定电压、额定电流和接触电阻等。...
2022-03-06 00:00:00
30c贴片电阻是一种体积小巧、性能稳定的电子元件,应用于各种电子产品中。其型号30c代表其尺寸为3.2mm*1.6mm,厚度薄至0.6mm,非常适合在空间有限的...
2024-11-29 10:26:27
现代电子产品和电气设备中,端子(Terminal)作为连接电路的重要元件,扮演着非常重要的角色。TERMINAL_16.03X16.1MM是一种广泛应用于各种电...
2025-03-06 15:07:45
现代电子设备中,保护电路安全的重要元件便是保险丝。随着电子产品的小型化和高性能化,一次性贴片保险丝因其体积小、安装方便等优势应用于各种电子设备。本文将详细介绍一...
2025-11-18 04:00:04
1、引言演化硬件(EHW)是指能根据外部环境变化自动改变自身结构和功能的一类硬件,它把可编程逻辑器件的结构位串当作染色体,通过演化算法进行搜索,用符合要求的染...
2020-08-03 17:35:00
保险丝作为重要的保护元件,起到了防止电路过载和短路的重要作用。ZOYI LIGHTING作为知名的照明品牌,其产品线中涵盖了多种类型的保险丝,满足不同应用场景的...
2024-09-27 05:31:30
现代科技中,超级电容器和电池都是重要的能量存储设备。虽然都可以存储电能,但其工作原理和应用场景却有很大的不同。本文将探讨这两者之间的区别。 工作原理不同超级电容...
2025-04-02 05:31:41