使用cv2.GaussianBlur()函数对图像进行高斯滤波。需要指定高斯核的大小(必须是正奇数)和标准差。 python blurred_image = cv2.GaussianBlur(image, (15, 15), 0) 在这个例子中,高斯核的大小是15x15,标准差设置为0表示由核大小计算得出。 显示滤波后的图像: 使用cv2.imshow()函数显示原始图像和滤波后的图像。
importcv2importnumpyasnpfrommatplotlibimportpyplotasplt# 读取图像image=cv2.imread('image.jpg')# 使用高斯滤波# (5, 5) 是卷积核的大小,0表示根据高斯函数自动计算标准差blurred_image=cv2.GaussianBlur(image,(5,5),0)# 显示原图和模糊图plt.figure(figsize=(10,5))plt.subplot(1,2,1),plt.imshow(cv2...
高斯模糊是低通滤波的一种,滤波函数是低通高斯函数,会减少图像的高频信息。 原理:所有点都取周围点像素的平均值显然不合理,所以高斯模糊通过正态分布的高斯函数来分配周围像素的权重,越接近中心的位置取值越大,远离中心的位置取值越小。在计算时将像素中心作为原点,其他点按高斯函数分配权重,便得到一个加权平均值。这...
6、双边滤波(cv2.bilateralFilter) 同高斯滤波一样,双边滤波会依据每个像素及其邻域构造一个加权平均值,加权包括两个部分(这两部分就是双边的由来):第一部分的加权方式与高斯滤波相同;第二部分也是一种高斯滤波,但不再是基于离卷积核中心的空间距离的加权(空间域,距离越近,权值越大),而是基于其他像素与中心像素的亮...
高斯函数在图形上表现为一个钟形曲线,中心值最大,向四周逐渐减小,这种特性使得它在平滑图像时能够保持图像的边缘信息,避免边缘模糊。 2. 准备工作 首先,确保你的Python环境中已安装了OpenCV库。如果未安装,可以通过pip安装: pip install opencv-python 3. 读取图像 使用OpenCV的cv2.imread()函数读取要处理的图像。
blur=cv2.blur(srcImage_new,(7,7))plt.imshow(blur) 3.高斯滤波(GaussianBlur)在图像高斯平滑中,对图像进行平均时,不同位置的像素被赋予了不同的权重。高斯平滑与简单平滑不同,它在对邻域内像素进行平均时,给予不同位置的像素不同的权值。高斯滤波让临近的像素具有更高的重要度,对周围像素计算加权平均值,较近...
cv2.imshow("boxFilter", cv2charimg)#高斯滤波defGaussianBlur(source): img= cv2.GaussianBlur(source, (3,3), 0) cv2img= cv2.cvtColor(img, cv2.COLOR_BGR2RGB)#cv2和PIL中颜色的hex码的储存顺序不同pilimg =Image.fromarray(cv2img) draw= ImageDraw.Draw(pilimg)#图片上打印font = ImageFont.truetype...
cv2.waitKey(0) cv2.destroyAllWindows() 三. python程序输出结果: 高斯滤波后图像 原图 四. opencv函数 cv2.GaussianBlur(img,(3,3),1.3) 实现高斯滤波 其中,(3,3)为滤波器的大小;1.3为滤波器的标准差,如果标准差这个参数设置为0,则程序会根据滤波器大小自动计算得到标准差。
cv2.waitKey(0) 为了比较一下自己的实现和opencv的标准实现的差异,调用了GaussianBlur函数进行对比,没使用自己的图是因为自己那张图的噪声不明显,结果如下: 第一张是原始噪声图,第二张是自己的滤波结果,第三张是cv2标准函数的结果,视觉上效果差不多,说明实现没问题。