OpenCV半小时掌握基本操作之高斯双边
目录
- 概述
- 边缘保留滤波 (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)
输出结果:
到此这篇关于OpenCV半小时掌握基本操作之高斯双边的文章就介绍到这了,更多相关OpenCV高斯双边内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!
相关推荐
-
OpenCV半小时掌握基本操作之傅里叶变换
目录 概述 高频 vs 低频 傅里叶变换 代码详解 输入转换 傅里叶变换 获取幅度谱 傅里叶逆变换 获取低频 获取高频 概述 OpenCV 是一个跨平台的计算机视觉库, 支持多语言, 功能强大. 今天小白就带大家一起携手走进 OpenCV 的世界. 高频 vs 低频 高频 vs 低频: 高频: 变换剧烈的灰度分量, 例如边界 低频: 变换缓慢的灰度分量, 例如一片大海 滤波: 低通滤波器: 只保留低频, 会使得图像模糊 高通滤波器: 只保留高频, 会使得图像细节增强 傅里叶变换 傅里叶变化 (F
-
python opencv实现直线检测并测出倾斜角度(附源码+注释)
由于学习需要,我想要检测出图片中的直线,并且得到这些直线的角度.于是我在网上搜了好多直线检测的代码,但是没有搜到附有计算直线倾斜角度的代码,所以我花了一点时间,自己写了一份直线检测并测出倾斜角度的代码,希望能够帮助到大家! 注:这份代码只能够检测简单结构图片的直线,复杂结构的图片还需要设置合理的参数 下面展示 源码. import cv2 import numpy as np def line_detect(image): # 将图片转换为HSV hsv = cv2.cvtColor(image
-
利用Opencv中Houghline方法实现直线检测
利用Opencv中的Houghline方法进行直线检测-python语言 这是给Python部落翻译的文章,请在这里看原文. 在图像处理中,霍夫变换用来检测任意能够用数学公式表达的形状,即使这个形状被破坏或者有点扭曲. 下面我们将看到利用HoughLine算法来阐述霍夫变化进行直线检测的原理,把此算法应用到特点图像的边缘检测是可取的.边缘检测方法请参考这篇文章–边缘检测. Houghline算法基础 直线可以表示为y=mx+c,或者以极坐标形式表示为r=xcosθ+ysinθ,其中r是原点到直线
-
OpenCV半小时掌握基本操作之直线检测
目录 概述 霍夫直线变换 原理详解 代码实战 HoughLines HoughLinesP [OpenCV] ⚠️高手勿入! 半小时学会基本操作 ⚠️ 直线检测 概述 OpenCV 是一个跨平台的计算机视觉库, 支持多语言, 功能强大. 今天小白就带大家一起携手走进 OpenCV 的世界. (第 13 课) 霍夫直线变换 霍夫变换 (Hough Line Transform) 是图像处理中的一种特征提取技术. 通过平面空间到极值坐标空间的转换, 可以帮助我们实现直线检测. 如图: 原理详解 当我
-
Python+OpenCV图像处理——实现直线检测
简介: 1.霍夫变换(Hough Transform) 霍夫变换是图像处理中从图像中识别几何形状的基本方法之一,应用很广泛,也有很多改进算法.主要用来从图像中分离出具有某种相同特征的几何形状(如,直线,圆等).最基本的霍夫变换是从黑白图像中检测直线(线段). 2.Hough变换的原理是将特定图形上的点变换到一组参数空间上,根据参数空间点的累计结果找到一个极大值对应的解,那么这个解就对应着要寻找的几何形状的参数(比如说直线,那么就会得到直线的斜率k与常熟b,圆就会得到圆心与半径等等) 3.霍夫线变
-
OpenCV半小时掌握基本操作之分水岭算法
[OpenCV]⚠️高手勿入! 半小时学会基本操作 ⚠️ 分水岭算法 概述 OpenCV 是一个跨平台的计算机视觉库, 支持多语言, 功能强大. 今天小白就带大家一起携手走进 OpenCV 的世界. 分水岭算法 分水岭算法 (Watershed Algorithm) 是一种图像区域分割算法. 在分割的过程中, 分水岭算法会把跟临近像素间的相似性作为重要的根据. 分水岭分割流程: 读取图片 转换成灰度图 二值化 距离变换 寻找种子 生成 Marker 分水岭变换 距离变换 距离变换 (Distan
-
OpenCV半小时掌握基本操作之高斯双边
目录 概述 边缘保留滤波 (EPF) 高斯双边 均值迁移 [OpenCV] ⚠️高手勿入! 半小时学会基本操作 ⚠️ 高斯双边 概述 OpenCV 是一个跨平台的计算机视觉库, 支持多语言, 功能强大. 今天带大家用 OpenCV 来实现一个简单的磨皮. 边缘保留滤波 (EPF) 边缘保留滤波 (Edge Preserving Filter) 是图像处理的一种技术. 有别与传统滤波, EPF 会对差别较大的像素区域进行区分, 在保持边缘锐利的同时消除噪声或纹理. 高斯双边 双边滤波 (Bilat
-
OpenCV半小时掌握基本操作之边缘检测
目录 概述 Scharr 算子 Laplacian 算子 Sobel vs Scharr vs Laplacian Canny 边缘检测 高斯滤波器 梯度和方向 非极大值抑制 双阈值检测 [OpenCV]⚠️高手勿入! 半小时学会基本操作⚠️ 边缘检测 概述 OpenCV 是一个跨平台的计算机视觉库, 支持多语言, 功能强大. 今天小白就带大家一起携手走进 OpenCV 的世界. (第 12 课) Scharr 算子 Scharr 算子和 Sobel 算子基本一样. 只是卷积核系数不同. Sch
-
OpenCV半小时掌握基本操作之滤波器
目录 概述 图像平滑 均值滤波器 方框滤波 高斯滤波器 中值滤波 [OpenCV]⚠️高手勿入! 半小时学会基本操作⚠️滤波器 概述 OpenCV 是一个跨平台的计算机视觉库, 支持多语言, 功能强大. 今天小白就带大家一起携手走进 OpenCV 的世界. (第 9 课) 图像平滑 图像平滑 (image smoothing) 是一种区域增强算法. 可以帮助我们去除早点改善图片质量. 滤波器 (Filter) 可以帮助我们来降低噪声, 均值滤波器的主要应用是去除图像中的不相关细节. 原图: 均值
-
OpenCV半小时掌握基本操作之SIFT算法
目录 概述 图像尺度空间 多分辨率金字塔 高斯差分金字塔 计算极值点 SIFT 算法 函数 实战 概述 OpenCV 是一个跨平台的计算机视觉库, 支持多语言, 功能强大. 今天小白就带大家一起携手走进 OpenCV 的世界. (第 24 课) 图像尺度空间 在一定的范围内, 无论物体是大还是小, 人眼都可以分辨出来. 而计算机要有相同的能力却很难, 所以要让机器能够对物体在不同尺度下有一个统一的认知, 就需要考虑图像在不同的尺度下都存在的特点. 多分辨率金字塔 使用高斯模糊, 不同的 σ 决定
-
OpenCV半小时掌握基本操作之图像金字塔
目录 概述 图像金字塔 高斯金字塔 拉布拉斯金字塔 [OpenCV]⚠️高手勿入! 半小时学会基本操作 ⚠️ 图像金字塔 概述 OpenCV 是一个跨平台的计算机视觉库, 支持多语言, 功能强大. 今天小白就带大家一起携手走进 OpenCV 的世界. 图像金字塔 高斯金字塔 高斯金字塔 (Gaussian Pyramid) 是最基本的图像塔. 对图像进行高斯滤波, 然后去除偶数行和列. 对图像放大形成上采样. 下采样: 例子: # 读取图片 img = cv2.imread("person.jp
-
OpenCV半小时掌握基本操作之色彩空间
目录 概述 色彩空间 色彩空间转换 视频阈值 [OpenCV]⚠️高手勿入! 半小时学会基本操作⚠️色彩空间 概述 OpenCV 是一个跨平台的计算机视觉库, 支持多语言, 功能强大. 今天小白就带大家一起携手走进 OpenCV 的世界. (第 6 课) 色彩空间 色彩空间 (Color Space) 即以同的空间维度来表示某一色彩 (通常使用 3 个或者 4 个 值). 常见的色彩空间: RGB HSV HIS YCrCb YUV 色彩空间转换 原图: 代码实现: import numpy a
-
OpenCV半小时掌握基本操作之像素加减乘除&逻辑运算
目录 概述 加减乘除 相加 相减 相乘 相除 逻辑运算 逻辑与 逻辑或 逻辑反 [OpenCV]⚠️高手勿入! 半小时学会基本操作⚠️像素加减乘除 & 逻辑运算 概述 OpenCV 是一个跨平台的计算机视觉库, 支持多语言, 功能强大. 今天小白就带大家一起携手走进 OpenCV 的世界. 加减乘除 原图: 相加 import cv2 def add(image1, image2): """相加""" result = cv2.add(i
-
OpenCV半小时掌握基本操作之图像轮廓
目录 概述 图像轮廓 绘制轮廓 轮廓特征 轮廓近似 边界矩形 外接圆 [OpenCV]⚠️高手勿入! 半小时学会基本操作 ⚠️ 图像轮廓 概述 OpenCV 是一个跨平台的计算机视觉库, 支持多语言, 功能强大. 今天小白就带大家一起携手走进 OpenCV 的世界. 图像轮廓 cv2.findContours可以帮助我们查找轮廓. 格式: cv2.findContours(image, mode, method, contours=None, hierarchy=None, offset=Non
-
OpenCV半小时掌握基本操作之直方图
[OpenCV]⚠️高手勿入!⚠️ 半小时学会基本操作 ⚠️ 直方图 概述 OpenCV 是一个跨平台的计算机视觉库, 支持多语言, 功能强大. 今天小白就带大家一起携手走进 OpenCV 的世界. (第 20 课) 直方图 原图: cv2.calcHist()可以帮助我们统计像素并得到直方图. 格式: calcHist(images, channels, mask, histSize, ranges, hist=None, accumulate=None) 参数: images: 输入图像 c
随机推荐
- 学习使用批处理文件的意义第1/2页
- PHP中的cookie
- 关于mysql innodb count(*)速度慢的解决办法
- asp.net ext treepanel 动态加载XML的实现方法
- Linux上安装GCC编译器过程
- js创建对象的区别示例介绍
- php在linux中可能用到的命令(推荐)
- linux如何编译安装新内核支持NTFS文件系统(以redhat7.2x64为例)
- sqlserver自动增长列引起的问题解决方法
- jQuery移动页面开发中的触摸事件与虚拟鼠标事件简介
- javascript学习笔记(四)function函数部分
- JavaScript中函数表达式和函数声明及函数声明与函数表达式的不同
- android随机生成圆形云标签效果
- js 设置选中行的样式的实现代码
- 深入学习js瀑布流布局
- 查看iOS已上架App的Crash信息定位、应对处理方式的实例
- Jsp+Servlet实现文件上传下载 删除上传文件(三)
- Go基础Slice教程详解
- Python OpenCV之图片缩放的实现(cv2.resize)
- 详解java并发之重入锁-ReentrantLock