双边滤波操作在平滑图像和去除噪声方面非常有效。双边滤波的主要优点是它可以保留边缘,而平均和中值滤波不能保留。与其他滤波器相比,双边滤波操作较慢。我们可以使用 cv2.bilateralFilter() 方法对图像执行双边滤波操作。
语法
以下是该方法的语法。
cv2.bilateralFilter(img, d, sigmaColor, sigmaSpace)
此方法接受以下 参数 −
- img − 应用双边滤波操作的输入图像。
-
d − 表示像素邻域直径的整数类型的变量。
-
sigmaColor − 表示颜色空间中的滤波器sigma的整数值。值越大,颜色之间的距离越远,它们就开始混合。
-
sigmaSpace − 表示坐标空间中的滤波器sigma的整数值。它的值越大,颜色在sigmaColor范围内的像素混合得越远。
步骤
要执行双边滤波操作,可以按照以下步骤进行−
导入所需库。在以下所有Python示例中,所需的Python库是 OpenCV 。确保您已安装它。
import cv2
读取输入图像。
img = cv2.imread('birds.jpg')
在输入图像上应用双边滤波。我们将d,sigmaColor和sigmaSpace分别作为9、15和15传递给函数。
bilateral = cv2.bilateralFilter(img, 9, 75, 75)
显示双边过滤后的图像。
cv2.imshow('bilateral.jpg', bilateral)
cv2.waitKey(0)
cv2.destroyAllWindows())
示例
让我们看一个对输入图像执行双边滤波操作的示例。
import cv2
# Read the image.
img = cv2.imread('birds.jpg')
# Apply bilateral filter with d = 9,
# sigmaColor = sigmaSpace = 75.
bilateral = cv2.bilateralFilter(img, 9, 75, 75)
# display the output
cv2.imshow('bilateral.jpg', bilateral)
cv2.waitKey(0)
cv2.destroyAllWindows()
我们将使用以下图像作为 输入文件 在此程序中−
输出
当我们执行以上代码时,它将产生以下输出 **** −
我们使用d = 9,sigmaColor = 55和sigmaSpace = 55应用了双边滤波
我们得到以下输出窗口−
注意输入图像和经过双边滤波后的图像之间的区别。
为帮助更多对人工智能感兴趣的小伙伴们能够有效的系统性的学习以及论文的研究,小编特意制作整理了一份人工智能学习资料给大家,整理了很久,非常全面。
大致内容包括一些人工智能基础入门视频和文档+AI常用框架实战视频、计算机视觉、机器学习、图像识别、NLP、OpenCV、YOLO、pytorch、深度学习与神经网络等学习资料、课件源码、国内外知名精华资源、以及AI热门论文等全套学习资料。
需要以上这些文中提到的资料,请点击此处→【人工智能全套完整VIP资料】即可免费获取。
看完三件事❤️
- 如果你觉得这篇内容对你还蛮有帮助,我想邀请你帮我三个小忙:
- 点赞,转发,有你们的 『点赞和评论』,才是我创造的动力。
- 关注作者公众号 『 python深度学习NLP 』,不定期分享原创知识。
- 关注后回复【666】扫码即可获取学习资料包。
- 同时可以期待后续文章ing🚀。