【opencv】图像平滑处理

图像平滑处理就是图像滤波,使图像模糊化,是图像去躁的手段。

图像锐化和图像平滑有何区别和联系?

图像锐化是用于增强边缘,导致高频分量增强,会使图像清晰;
图像平滑用于去躁,对图像高频分量即图像边缘会有影响。
两者都属于图像增强,改善图像效果。

高斯滤波是一种非常常用的模糊平滑方式,是线性滤波中的一种。其广泛的应用在图像处理的减噪过程中,尤其是被高斯噪声所污染的图像上。还经常做为一些复杂算法的第一步,比如Canny边缘检测等。

中值滤波是一种非线性滤波器,常用于消除图像中的椒盐噪声。与低通滤波不同的是,中值滤波有利于保留边缘的尖锐度,但它会洗去均匀介质区域中的纹理。在做为去除相机噪声点的一种方法,还有形态学的开运算也可对相机降噪。

双边滤波是一种非线性滤波器。这是一种结合图像的空间邻近度与像素值相似度的处理办法。在滤波时,该滤波方法同时考虑空间临近信息与颜色相似信息,在滤除噪声、平滑图像的同时,又做到边缘保存。基本思想是:将高斯滤波(空间临近)的原理中,通过各个点到中心点的空间临近度计算的各个权值进行优化,将其优化为空间临近度计算的权值和像素值相似度计算的权值的乘积,优化后的权值再与图像作卷积运算。从而达到保边去噪的效果。

均值迁移滤波图像边缘保留滤波算法中的一种,经常用在对图像进行分水岭分割之前去噪声,可以大幅度提升分水岭分割的效果。主要的效果主要是使得图片具有油画效果,也就是图片中的边缘得以保留,但是差异一定范围内的像素点将展现区域内的平均值。还可用于人脸磨皮去斑…

# -*- coding: utf-8 -*-
"""
Created on Wed May 12 11:27:26 2021

@author: zqq
"""

import cv2
import numpy as np
from matplotlib import pyplot as plt

img = cv2.imread('1.jpg')

# 图像滤波

# 高斯滤波
KsizeX = 5  # x方向核函数尺寸,取值为正奇数
KsizeY = 3  # y方向核函数尺寸,可与X方向不同
out1 = cv2.GaussianBlur(img, (KsizeX, KsizeY), 0)

# 中值滤波
Ksize = 7  # 核函数尺寸,取值范围3-27之间的奇数,默认为3;建议取值3、5、7过大图像模糊化严重,运算慢
out2 = cv2.medianBlur(img, ksize=Ksize)

# 双边滤波
# d为过滤期间使用的每个像素邻域的直径,取值范围建议1-12
# sigmaColor为色彩空间的标准方差,取值范围建议11-200,一般尽可能大。较大的参数值意味着像素邻域内较远的颜色会混合在一起,从而产生更大面积的半相等颜色
# sigmaSpace为坐标空间的标准方差,取值范围建议11-200,一般尽可能小。参数值越大意味着只要它们的颜色足够接近,越远的像素都会相互影响。
d = 10
sigC = 100
sigS = 11
out3 = cv2.bilateralFilter(img, d=d, sigmaColor=sigC, sigmaSpace=sigS)

# 均值迁移滤波
# sp为漂移物理空间半径大小,取值范围建议0-10,数值大于10后运算速度明显变慢
# sr为漂移色彩空间半径大小,取值范围建议0-200,数值越大越模糊
sp = 10
sr = 10
out4 = cv2.pyrMeanShiftFiltering(img, sp=sp, sr=sr)

titles = ['高斯滤波', "中值滤波", "双边滤波", "均值迁移滤波"]
images = [out1, out2, out3, out4]

for i in range(4):
    plt.subplot(2, 2, i+1)
    plt.imshow(images[i], 'gray')
    plt.title(titles[i], fontproperties="SimHei")
    plt.xticks([])
    plt.yticks([])

plt.savefig("res.png")
plt.show()

原图:
在这里插入图片描述
滤波后的图:

在这里插入图片描述

参考

https://blog.csdn.net/zaishuiyifangxym/article/details/89788020

https://zhuanlan.zhihu.com/p/302423572

https://www.cnblogs.com/silence-cho/p/11027218.html

https://blog.csdn.net/echooozhang/article/details/105128034

猜你喜欢

转载自blog.csdn.net/AugustMe/article/details/116751153