【OpenCV】 基本操作 高斯双边
Opencv 基本操作 高斯 双边
2023-09-27 14:20:54 时间
【OpenCV】 ⚠️高手勿入! 半小时学会基本操作 17⚠️ 高斯双边
概述
OpenCV 是一个跨平台的计算机视觉库, 支持多语言, 功能强大. 今天带大家用 OpenCV 来实现一个简单的磨皮. (第 17 课)
边缘保留滤波 (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)
输出结果:
相关文章
- 【Opencv 系列】第1章 图像基础
- 【Opencv 系列】 第6章 人脸检测(Haar/dlib) & 关键点检测
- 【OpenCV】基本操作直方图
- 【OpenCV】基本操作 分水岭算法
- 【OpenCV】基本操作 图像梯度
- 【OpenCV】高手勿入! 半小时学会基本操作 6 色彩空间
- 【OpenCV】高手勿入! 半小时学会基本操作 4 图像裁剪融合
- [OpenCV] Samples 18: Load image and check its attributes
- opencv 读取图片 显示图片 保存图片
- 让OCR更简单 | PaddleOCR+OpenCV实现文字识别步骤与代码演示
- opencv自带LKD算法 物体追踪
- OpenCV中图像视频的基本操作
- 详解OpenCV中的Lucas Kanade稀疏光流单应追踪器
- OpenCV中的霍夫线变换、概率霍夫线变换
- 【OpenCV】—ROI区域图像叠加&图像混合
- ubuntu查看opencv的版本
- caffe编译的问题 找不到opencv的 tiff库文件
- 在MacOS和iOS系统中使用OpenCV
- python-opencv-Canny边缘检测
- python-opencv-图像缩放