服务器之家

服务器之家 > 正文

OpenCV实现双边滤波算法

时间:2022-01-20 14:49     来源/作者:点云侠

本文为大家分享了OpenCV实现双边滤波算法的具体代码,供大家参考,具体内容如下

 

一、双边滤波

双边滤波是一种综合考虑滤波器内图像空域信息和滤波器内图像像素灰度值相似性的滤波算法,可以实现在保留区域信息的基础上实现对噪声的去除、对局部边缘的平滑。双边滤波对高频率的波动信号起到平滑的作用,同时保留大幅值变化的信号波动,进而实现对保留图像中边缘信息的作用。双边滤波具有美颜效果。

 

二、C++代码

#include <opencv2\opencv.hpp>
#include <iostream>

using namespace cv;
using namespace std;

int main()
{
//读取两张含有人脸的图像
Mat img1 = imread("face1.png", IMREAD_ANYCOLOR);

if (img1.empty())
{
cout << "请确认图像文件名称是否正确" << endl;
return -1;
}
Mat result1, result2, result3, result4;
//验证不同滤波器直径的滤波效果
bilateralFilter(img1, result1, 9, 50, 25 / 2);
bilateralFilter(img1, result2, 25, 50, 25 / 2);
//验证不同标准差值的滤波效果
bilateralFilter(img1, result3, 9, 9, 9);
bilateralFilter(img1, result4, 9, 200, 200);
//显示原图
imshow("img1", img1);
//不同直径滤波结果
imshow("result1", result1);
imshow("result2", result2);
//不同标准差值滤波结果
imshow("result3 ", result3);
imshow("result4", result4);
waitKey(0);
return 0;
}

 

三、python代码

import cv2

img = cv2.imread('666.jpg')
# -------------------双边滤波------------------
img_bilater = cv2.bilateralFilter(img, 9, 75, 75)
# ------------------可视化结果-----------------
cv2.imshow('origion_pic', img)
cv2.imshow('filtered_pic', img_bilater)
cv2.waitKey(0)

 

四、结果展示

OpenCV实现双边滤波算法

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。

原文链接:https://blog.csdn.net/qq_36686437/article/details/120598855

标签:

相关文章

热门资讯

蜘蛛侠3英雄无归3正片免费播放 蜘蛛侠3在线观看免费高清完整
蜘蛛侠3英雄无归3正片免费播放 蜘蛛侠3在线观看免费高清完整 2021-08-24
yue是什么意思 网络流行语yue了是什么梗
yue是什么意思 网络流行语yue了是什么梗 2020-10-11
背刺什么意思 网络词语背刺是什么梗
背刺什么意思 网络词语背刺是什么梗 2020-05-22
2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全
2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全 2019-12-26
2021年耽改剧名单 2021要播出的59部耽改剧列表
2021年耽改剧名单 2021要播出的59部耽改剧列表 2021-03-05
返回顶部