目录
概述边缘保留滤波 (EPF)高斯双边均值迁移
【OpenCV】 ⚠️高手勿入! 半小时学会基本操作 ⚠️ 高斯双边
概述
OpenCV 是一个跨平台的计算机视觉库, 支持多语言, 功能强大. 今天带大家用 OpenCV 来实现一个简单的磨皮.
边缘保留滤波 (EPF)
边缘保留滤波 (Edge Preserving Filter) 是图像处理的一种技术. 有别与传统滤波, EPF 会对差别较大的像素区域进行区分, 在保持边缘锐利的同时消除噪声或纹理.
高斯双边
双边滤波 (Bilateral Filter) 即高斯滤波. 滤波器由两个函数构成. 一个函数是由集合空间距离决定滤波器系数. 另一个是由像素差值决定滤波系数.
格式:
cv2.bilateralFilter(src, d, sigmaColor, sigmaSpace, dst=None, borderType=None)
参数:
src: 输入图像
d: 相邻像素的直径
sigmaColor: 颜色空间过滤
sigmaSpace: 坐标空间过滤
例子:
import numpy as np import cv2 # 读取图片 image = cv2.imread("face.jpg") # 高斯二边 dest = cv2.bilateralFilter(image, 0, 100, 15) # 图片展示 combine = np.hstack((image, dest)) cv2.imshow("combine", combine) cv2.waitKey(0) cv2.destroyAllWindows() # 保存结果 cv2.imwrite("bilateral.jpg", combine)
输出结果:
高斯模糊 vs 高斯双边:
均值迁移
均值迁移 (Mean-Shift Blur) 会计算得到像素均值与空间位置均值, 使用新的均值作为窗口中心位置.
格式:
cv2.pyrMeanShiftFiltering(src, sp, sr, dst=None, maxLevel=None, termcrit=None)
参数:
src: 输入图像
sp: 空间窗口半径
sr: 颜色窗口半径
maxLevel: 分割金字塔的最大级别
termcrit: 终止条件, 默认为 None
例子:
import numpy as np import cv2 # 读取图片 image = cv2.imread("face.jpg") # 均值迁移 dest = cv2.pyrMeanShiftFiltering(image, 10, 50) # 图片展示 combine = np.hstack((image, dest)) cv2.imshow("combine", combine) cv2.waitKey(0) cv2.destroyAllWindows() # 图片保存 cv2.imwrite("mean_shift.jpg", combine)
输出结果:
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
评论(0)