边缘保留滤波 (EPF)
边缘保留滤波 (Edge Preserving Filter) 是图像处理的一种技术. 有别与传统滤波, EPF 会对差别较大的像素区域进行区分, 在保持边缘锐利的同时消除噪声或纹理.
高斯双边
双边滤波 (Bilateral Filter) 即高斯滤波. 滤波器由两个函数构成. 一个函数是由集合空间距离决定滤波器系数. 另一个是由像素差值决定滤波系数.
格式:
cv2.bilateralFilter(src, d, sigmaColor, sigmaSpace, dst=None, borderType=None)
1
参数:
src: 输入图像
d: 相邻像素的直径
sigmaColor: 颜色空间过滤
sigmaSpace: 坐标空间过滤
import numpy as np
import cv2
# 读取图片
image = cv2.imread("girl.png")
# 高斯二边
dest = cv2.bilateralFilter(image, 0, 100, 15)
# 图片展示
combine = np.hstack((image, dest))
cv2.imshow("combine", combine)
cv2.waitKey(0)
cv2.destroyAllWindows()

均值迁移
均值迁移 (Mean-Shift Blur) 会计算得到像素均值与空间位置均值, 使用新的均值作为窗口中心位置.
格式:
cv2.pyrMeanShiftFiltering(src, sp, sr, dst=None, maxLevel=None, termcrit=None)
1
参数:
src: 输入图像
sp: 空间窗口半径
sr: 颜色窗口半径
maxLevel: 分割金字塔的最大级别
termcrit: 终止条件, 默认为 No
import numpy as np
import cv2
# 读取图片
image = cv2.imread("girl.png")
# 均值迁移
dest = cv2.pyrMeanShiftFiltering(image, 10, 50)
# 图片展示
combine = np.hstack((image, dest))
cv2.imshow("combine", combine)
cv2.waitKey(0)
cv2.destroyAllWindows()

高斯金字塔
高斯金字塔 (Gaussian Pyramid) 是最基本的图像塔. 对图像进行高斯滤波, 然后去除偶数行和列. 对图像放大形成上采样.
下采样:
# 读取图片
import cv2
img = cv2.imread("girl.png")
print(img.shape) # (381, 382, 3)
# 下采样
down = cv2.pyrDown(img)
print(down.shape) # (191, 191, 3)
# 展示图片
cv2.imshow("down", down)
cv2.waitKey(0)
cv2.destroyAllWindows()


# 读取图片
import cv2
img = cv2.imread("girl.png")
img= cv2.resize(img, (640, 554))
print(img.shape) # (381, 382, 3)
# 上采样
up = cv2.pyrUp(img)
print(up.shape) # (762, 764, 3)
# 展示图片
cv2.imshow("up", up)
cv2.waitKey(0)
cv2.destroyAllWindows()

拉布拉斯金字塔
在进行高斯金字塔 (Gaussian Pyramid) 运算时, 在不断的高斯滤波和下采样, 我们丢失了很多高频信号.
拉斯金字塔 (Laplacian Pyramid) 可以帮助我们保留高频信号.
# 读取图片
import cv2
img = cv2.imread("girl.png")
img = cv2.resize(img, (380, 380))
# 下采样
down = cv2.pyrDown(img)
# 上采样
down_up = cv2.pyrUp(down)
# 原图 - down_up
result = img - down_up
# 图片展示
cv2.imshow("result", result)
cv2.waitKey(0)
cv2.destroyAllWindows()

浙公网安备 33010602011771号