首页 > 编程语言 >双边滤波器原理简述及C++实现

双边滤波器原理简述及C++实现

时间:2024-11-14 16:17:39浏览次数:3  
标签:滤波器 权重 滤波 C++ 简述 原理 双边

双边滤波器原理简述及C++实现

一、文章简介

本文主要简述双边滤波器原理,尽可能通俗易懂,最后用C++实现双边滤波器,加深对原理及公式的理解。
双边滤波器和高斯滤波器效果对比:
在这里插入图片描述

二、双边滤波器原理

图像处理中,滤波是必不可少,常见的滤波有均值,中值和高斯,这三种滤波算法,都是各项同性滤波算法,即每一个像素点,都采用相同的滤波属性,结构(边缘等细节)和非结构(平滑区域)操作是完全一样的,在去噪的同时,图像细节信息会丢失,造成图像模糊。
双边滤波器(bilateral filter)在边缘和平滑区域的处理是不一样的。顾名思义,双边,就是滤波系数考虑两种因素,一边是空间属性,一边是像素属性,即两个权重,一个权重根据邻域距离计算,另一个权重根据邻域像素值确定,最终两个权重相乘为一个权重。
公式如下:
对于位置为

标签:滤波器,权重,滤波,C++,简述,原理,双边
From: https://blog.csdn.net/puqian13/article/details/143746085

相关文章

  • C++学习笔记之string容器、vector容器
    我们读过的书,说过的话,见过的山水,见到的人和事,最终都会变成我们脚下的的路。1.string容器string是C++风格的字符串,而string本质上是一个类。#include<iostream>usingnamespacestd;#include<string>//以下参数为constchar*类型与string类型的函数参数可以......
  • C++中的仿函数Functor
    在C++中,有仿函数Functor的概念,首先要明白,它叫做仿函数,就说明它本身肯定不是一个函数=>事实上,它是一个类的对象,但是可以像函数一样来进行调用怎么来理解这句话呢“仿函数是一个类的对象,但是它可以像函数一样来进行调用”? 是这样的=>本质是在这个类里面实现一个operator(),......
  • C++11新特性lambda
    文章目录前言lambda进阶用法总结前言本文介绍C++11新特性中的lamdba在C++11中支持了lambda表达式,如果你想生成一个简短、方便调用、函数内部清晰的轻量级函数,lambda是一个不错的选择。它允许我们在函数中生成函数,也可以向对待函数一样对待lambda。lambda首先看......
  • c++和c的不同及c++扩展内容
    头文件不同c++采用iostream库,并且作用与std领域中;标准格式:Usingnamespacestd#include<iostream>Intmain(){xxxxxSystem("pause");Return0;}提出了四个作用区域全局区代码区栈区堆取全局区:用来存放所有的全局变量,或宏定义代码,静态变量和常量;代码区:用来......
  • STL标准模板库c++
    STL:广义上分为:容器,算法,迭代器容器与算法间通过迭代器进行无缝连接。STL六大组件,分别是容器,算法,迭代器,仿函数,适配器,空间配置器。vector容器可以理解为数组;为单端数组,区别在于数组为静态空间,而vector可以动态扩展动态扩展:不是在原空间下,找到更......
  • 单向链表题库2(c++)
    目录前言[1.力扣——LCR123.图书整理I](https://leetcode.cn/problems/cong-wei-dao-tou-da-yin-lian-biao-lcof/description/)[2.力扣——LCR024.反转链表](https://leetcode.cn/problems/UHnkqh/submissions/580256040/)[3.力扣LCR141.训练计划III](https://le......
  • c++ 标准 智能指针 与 qt 智能指针 对比
    C++标准库提供了std::unique_ptr和std::shared_ptr等智能指针,而Qt则提供了QScopedPointer、QSharedPointer和QWeakPointer等自己的智能指针。两者在设计上有一些相似之处,但也存在一些关键的差异。下面是C++标准智能指针和Qt智能指针的详细对比:1.std::uniq......
  • C++生成随机数
    目录一、传统方式:std::rand 和 std::srand使用方法:优缺点:二、现代方式: 库(推荐)1. 随机整数2. 随机浮点数3. 布尔值4. 字符5. 正态分布(高斯分布)6. 离散分布的随机数7. 随机字符串8. UUID(通用唯一标识符)三、std::shuffle:用于打乱序列四、总结:选择合适的......
  • 【华为OD机试真题E卷】573、区间交叠问题 | 机试真题+思路参考+代码解析(E卷复用)(C++、J
    文章目录一、题目......
  • Linux-vscode-c++-slambook2-库文件找不到路径
    Linux-vscode-c++-slambook2-库文件找不到路径分享所遇到的困难,填补这些坑洞,希望后来者能够如履平地。首先已经在c_cpp_properties.json中已经添加了相关的文件,"includePath":["${workspaceFolder}/**","/usr/include/eigen3"......