新闻动态

OpenCV半小时掌握基本操作之高斯双边

发布日期:2022-02-01 09:09 | 文章来源:脚本之家

【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)

输出结果:

到此这篇关于OpenCV半小时掌握基本操作之高斯双边的文章就介绍到这了,更多相关OpenCV高斯双边内容请搜索本站以前的文章或继续浏览下面的相关文章希望大家以后多多支持本站!

国外服务器租用

版权声明:本站文章来源标注为YINGSOO的内容版权均为本站所有,欢迎引用、转载,请保持原文完整并注明来源及原文链接。禁止复制或仿造本网站,禁止在非www.yingsoo.com所属的服务器上建立镜像,否则将依法追究法律责任。本站部分内容来源于网友推荐、互联网收集整理而来,仅供学习参考,不代表本站立场,如有内容涉嫌侵权,请联系alex-e#qq.com处理。

相关文章

实时开通

自选配置、实时开通

免备案

全球线路精选!

全天候客户服务

7x24全年不间断在线

专属顾问服务

1对1客户咨询顾问

在线
客服

在线客服:7*24小时在线

客服
热线

400-630-3752
7*24小时客服服务热线

关注
微信

关注官方微信
顶部