PythonOpenCV边缘滤波保留怎么使用

本篇内容介绍了“Python OpenCV边缘滤波保留怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

十余年的察哈尔右翼前网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。营销型网站建设的优势是能够根据用户设备显示端的尺寸不同,自动调整察哈尔右翼前建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。创新互联公司从事“察哈尔右翼前网站设计”,“察哈尔右翼前网站推广”以来,每个客户项目都认真落实执行。

函数原型介绍

高斯双边滤波

双边滤波函数原型如下:

dst = cv2.bilateralFilter(src, d, sigmaColor, sigmaSpace[, dst[, borderType]])

参数说明:

  • src:输入图像;

  • d:过滤过程中每个像素邻域的直径范围。如果不是正数,则函数会从参数 sigmaSpace 计算该值;

  • sigmaColor:颜色空间过滤器的 sigma 值,参数的值越大,表明该像素邻域内有越宽广的颜色会被混合到一起,产生较大的半等色区域;

  • sigmaSpace:坐标空间中滤波器的 sigma 值,如果该值较大,则意味着越远的像素将相互影响,从而使更大的区域中足够相似的颜色获取相同的颜色。当 d>0 时,d 指定了邻域大小且与 sigmaSpace 无关,否则 d 正比于 sigmaSpace。

  • dst:和源图象相同大小、相同格式的输出图象;

一般将 sigmaSpace 设置大一些,sigmaColor 设置小一些,最终呈现的效果较好。

优缺点:
双边滤波,可很好的保存图像边缘细节,并且过滤掉低频分量的噪音,但是双边滤波效率不是很高,花费时间比其他滤波器较长。

测试代码如下,先掌握函数基本使用再说。

import cv2 as cvimport numpy as np# 双边滤波def bilater(image):# 第三个参数大一点(color),第四个小一点(space)dst = cv.bilateralFilter(image, 0, 100, 15)cv.namedWindow("dst")cv.imshow("dst", dst)src = cv.imread("./123.jpg")cv.namedWindow('src')cv.imshow('src', src)bilater(src)cv.waitKey(0)cv.destroyAllWindows()

均值迁移滤波

均值迁移算法是一种通用的聚类算法,它的基本原理是:

对于给定的一定数量样本,任选其中一个样本,以该样本为中心点划定一个圆形区域,求取该圆形区域内样本的质心,即密度最大处的点,再以该点为中心继续执行上述迭代过程,直至最终收敛。(没看太明白,大概了解一下即可)

函数原型如下:

dst = cv2.pyrMeanShiftFiltering(src, sp, sr[, dst[, maxLevel[, termcrit]]])

参数说明:

  • src:输入图像,8 位 3 通道图像;

  • sp:迁移物理空间半径大小;

  • sr:迁移色彩空间半径大小;

  • dst:可选参数,和源图象相同大小、相同格式的输出图象;

  • maxLevel:可选参数,金字塔的最大层数;

  • termcrit:可选参数,迁移迭代终止条件,可以设置为迭代次数满足终止,迭代目标与中心点偏差满足终止,或者两者的结合。

所有参数中,spsr 必选,二者设置的值越大,对图像色彩的平滑效果越明显,同时函数耗时越多。

测试代码如下:

import cv2 as cvimport numpy as np# 双边滤波def bilater(image):# 第三个参数大一点(color),第四个小一点(space)dst = cv.bilateralFilter(image, 0, 100, 15)cv.namedWindow("dst")cv.imshow("dst", dst)# 均值迁移滤波def pyrmeanshift(src):dst = cv.pyrMeanShiftFiltering(src, 10, 50)cv.imshow("dst", dst)src = cv.imread("./123.jpg")cv.namedWindow('src')cv.imshow('src', src)pyrmeanshift(src)cv.waitKey(0)cv.destroyAllWindows()

“Python OpenCV边缘滤波保留怎么使用”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注创新互联网站,小编将为大家输出更多高质量的实用文章!


新闻名称:PythonOpenCV边缘滤波保留怎么使用
链接分享:http://scyanting.com/article/jhdcip.html