保边滤波之基于测地距离的滤波与局部拉普拉斯滤波

news2025/4/8 17:48:26

(1)基于测地距离的滤波

给定图像I及其Hard Mask M,其中M(x)∈{0,1} ,M(x)=0表示x属于前景,M(x)=1表示x属于背景,图像中某点x到前面Hard Mask的测地距离为
在这里插入图片描述
在这里插入图片描述

???d(a,b)表示的是两个点之间像素值与像素位置之间的调和平均,而双边滤波也是用像素值以及像素位置表示,这两者都加入了像素值和像素位置,有什么区别吗?
基于硬掩膜做保边滤波:弄出255张掩膜,图像里面所有像素值为0的点在第一张掩膜的相应位置像素值标为0,以此类推,255张掩膜都这么做。再算图像里面每一个像素到0~255张掩膜的测地距离,e的-测地距离次方*对应像素值,再叠加起来。
针对Soft Mask的距离,考虑每个像素点的Mask值,测地距离为
在这里插入图片描述

基于soft mask做保边滤波,把所有的像素分成了k个level (μ1,μ2…μk),根据这k个level计算出k张Soft Mask 在这里插入图片描述

所以像素值离均值越近越近,执行度越高。
计算每个像素点到每个Soft Mask的测地距离在这里插入图片描述
并计算权重为:在这里插入图片描述

滤波后的图像为:在这里插入图片描述

(2)局部拉普拉斯滤波

用mask强行融合两个图像的话,边界交界处不平滑,有个拼接的缝。局部拉普拉斯滤波可以得到自然的处理结果。

利用局部拉普拉斯滤波图像融合过程:
(1) 为两幅图像生成拉普拉斯金字塔;
(2) 为Mask图像生成高斯金字塔;
(3) 将两幅图像的拉普拉斯金字塔按照Mask逐层合成一个拉普拉斯金字塔;好处:拼缝处高斯模糊了。
(4)重构融合的图像。如此接缝处是平滑的,并且包含各个尺度的特征。

???在重构拉普拉斯金字塔的时候我们要得到一些高频信息以及低频信息,然而高频信息却是通过高斯金字塔图层减去拉普拉斯金字塔图层来得到的,这样显然是合理的。但是为什么不用拉普拉斯变换来直接得到这些高频细节信息呢?拉普拉斯变换不就是通过拉普拉斯算子对图片进行判断来保留一些高频信息吗。

如果一个像素与其高斯滤波后的对应像素差异较大,那么该像素就在边缘上;如果一个像素与其高斯滤波后的对应像素差异较小,则其为细节。由此定义一个对于细节处理的函数与一个对于边缘处理的函数:在这里插入图片描述

其中i为某个像素,g是高斯滤波后i对应的像素;α控制模糊的程度(对小纹理区域梯度压制的程度),β控制动态范围扩展(缩小)的程度;σr是分辨细节和边缘的阈值。在这里插入图片描述

图一:某一点梯度在[g-sigma, g+sigma]范围内,是细节,α大于1,压制;梯度在[g-sigma, g+sigma]之外,不变。
图二:某一点梯度在[g-sigma, g+sigma]范围内,是细节,α小于1,扩展;梯度在[g-sigma, g+sigma]之外,不变。
第三个图是对图像在[g-sigma, g+sigma]之外做色调映射,α=1于是[g-sigma, g+sigma]范围内不变,而β在0-1之间,于是把动态范围缩小;
第四个是对图像在[g-sigma, g+sigma]之外做反色调映射。α=1于是[g-sigma, g+sigma]范围内不变,而β大于1,于是把动态范围放大扩展;
最后一个图是对图像在[g-sigma, g+sigma]之外做色调映射,在[g-sigma, g+sigma]之内做细节增强。在[g-sigma, g+sigma]之内α属于0~1,对该区域梯度压制,而β在0-1之间,于是把动态范围缩小。

双边滤波器:在这里插入图片描述

未归一化双边滤波器:在这里插入图片描述

归一化系数:在这里插入图片描述

归一化与未归一化的双边滤波器关系:在这里插入图片描述

其中,在这里插入图片描述

这个式子的意义就是未归一化的双边滤波结果是归一化的双边滤波结果和输入图像的加权平均。所以在一些边缘区域,αp比较小,这样未归一化双边滤波的输出结果就更像原图像一些,通常来说未归一化双边滤波会比归一化双边滤波软一些。

在这里插入图片描述

P1的边缘有伪像,p3是未归一化的双边滤波器,边缘没有伪像,p4是拉普拉斯滤波,更加的sharp。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/5464.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

机器学习中的数学原理——最小二乘法

这几天在刷B站的时候,有个深度学习的博主推荐了一本机器学习的书——《白话机器学习的数学》,抱着浅看一下的态度,我花3个大洋从淘宝上找到了这本书的电子版。看了两天我直接吹爆!!!所以这个专栏就分享一下…

《Linux驱动:DMA直接内存访问》

目录一、前言二、DMA传输主体三、S3c2440上的DMA3.1 DMA请求源3.2 DMA状态机3.3 DMA请求模式3.4 DMA服务模式3.5 DMA传输模式3.6 DMA读写数据大小3.7 DMA寄存器3.7.1 DCON寄存器其他几个重要位四、使用DMA4.1 软件触发DMA4.2 硬件源触发DMA一、前言 DMA(Direct Memory Aaccess…

SpringMVC框架中的拦截器

目录 1. 拦截器接口的介绍 2. 拦截器接口中方法的详细介绍 3. 配置拦截器的步骤 4. 多个拦截器的的执行情况 5. 拦截器与过滤器的区别 1. 拦截器接口的介绍 2. 拦截器接口中方法的详细介绍 public class MyInterceptor implements HandlerInterceptor {Overridepublic bo…

Elasticsearch学习--script

一、概念 es1.4-5.0,默认脚本语言是Grovvy es5.0,默认脚本语言是painless 二、简单使用 将price减一 # 将id1的price减一 POST goods/_update/1 {"script": {"source": "ctx._source.price - 1"} }# 简写 POST goods/_…

Cloud Computing之时钟和顺序Time and Ordering

文章目录Total orderImplementation of total orderLinearizabilityFIFO rderImplementation of FIFO-orderHappen-before orderingCausal orderingSummary参考文献:Lamport’s logical clock 这章重点介绍了分布式系统下各种类型的时序,其实在分布式场景…

【Linux】网络配置详解

网络配置一.网络连接测试1.查看宿主机和虚拟机ip(1)查看宿主机ip①宿主机:可视化界面查看ip②宿主机:命令行查看ip(2)查看虚拟机ip①虚拟机:可视化界面查看ip②虚拟机:命令行查看ip2.测试宿主机和虚拟机的网络通信(1).宿主机ping虚拟机(2).虚拟机ping宿主机二.网络连接模式1.桥…

420招募线上被试 | 高素质人才行为心理测试

招募中 【实验任务】高素质人才行为心理测试 【实验时长】18分钟 【实验时间】2022年11月12日00时 - 2022年11月20日24时 【实验地点】线上实验 【实验报酬】微信红包,每份问卷3元 【实验要求】如实回答问卷问题,并提供微博账号和微博地址 【被试要…

Js逆向教程-03浏览器调试工具-Source面板

Js逆向教程-03浏览器调试工具-Source面板 切换到source面板,对于source面板,需要打开搜索面板才能发挥出完整的功能。 一、搜索面板 通过点击右上角的按钮,切换到搜索面板 搜索页面的左侧,可以给搜索页面添加其他功能 比如cons…

第1章 数据结构的概念

文章目录文档配套视频讲解链接地址第01章 数据结构的概念1.1 数据结构的知识体系1.2 链表1. 创建头结点的内存图2. 插入1节点时的内存图3. 插入2节点时的内存图4. 插入3节点的内存图5. 实例1 链表节点的插入6. 链表删除节点37. 实例2 链表的删除节点8. 实例3 链表的改查逆序9. …

Allegro阻抗分析指导书

Allegro阻抗分析指导书 利用Allegro自带的功能可以快速分析信号的阻抗 操作如下 首先用172版本打开PCB 把每层厚度和介电常数填写进去 点击work flow Manager,出现右图对话框 选择需要查看的网络 点击start Analysis 点击impedance table和impedance vision就可以查看阻…

【网络篇】第九篇——多线程版的TCP网络程序

多进程与多线程对比 多进程 多线程 多线程版的TCP网络程序 多进程与多线程对比 多进程 优点 可以处理多个用户易于边写稳定,因为进程具有独立性 缺点 连接来了之后才创建进程,性能太低多进程服务器特别吃资源,而且同时服务的客户有上限…

(最新版2022版)剑指offer之排序题解

(最新版2022版)剑指offer之排序题解JZ3数组中重复的数字JZ51 数组中的逆序对JZ40 最小的K个数JZ41 数据流中的中位数JZ3数组中重复的数字 思路: 既然数组长度为nnn只包含了0到n−1n-1n−1的数字,那么如果数字没有重复&#xff0c…

qt C++中指针自动释放内存及程序中的内存操作、管理

程序加载到内存后代码存储到代码区,并将全局变量、静态变量初始化到全局/静态内存区,然后会分配2M左右的栈内存区用于存储局部变量,并在运行时根据需要可以在堆内存区(空闲内存区及硬盘的虚拟内存区)申请空间。 程序可使用的内存分区↓ 各基…

C++之Hello World

概览 编程语言历史 机器语言:00110101…最初始的计算机内部语言,不同机器使用的语言甚至不同 汇编语言:利用简单符号(a DB 7H…)对机器语言进行了一定的抽象,增加了可读性,更加人性化.在一定程度上仍然依赖硬件,属于低级的语言 高级语言:使用文字通过编译器被翻译为机器语言…

Vue中 引入使用 element-resize-detector 监听 Dom 元素 宽度、高度 变化

1. 前言 很多做pc端平台的小伙伴都遇到过这样一个问题:在做侧边栏菜单时会有一个收缩和展开的一个功能,在伸缩的过程中右边的页面的宽度就会随之改变。我上网查了查 ,也动手试了试 window.onresize ()>{}。却不尽人意,因为它…

SVM 超平面计算例题

SVM Summary Example Suppose the dataset contains two positive samples x(1)[1,1]Tx^{(1)}[1,1]^Tx(1)[1,1]T andx(2)[2,2]Tx^{(2)}[2,2]^Tx(2)[2,2]T, and two negative samples x(3)[0,0]Tx^{(3)}[0,0]^Tx(3)[0,0]T and x(4)[−1,0]Tx^{(4)}[-1,0]^Tx(4)[−1,0]T. Please…

MySQL纯代码复习

前言 本文章是用于总结尚硅谷MySQL教学视频的记录文章,主要用于复习,非商用 原视频连接:https://www.bilibili.com/video/BV1iq4y1u7vj/?p21&spm_id_frompageDriver&vd_sourcec4ecde834521bad789baa9ee29af1f6c https://www.bilib…

C#重启 --- 枚举

第一部分 --- 枚举 枚举类型的本质其实就是在给整型数据加标签,当编译器遇到枚举类型标签的时候,编译器会自动获取标签对应的整型数据(默认从0开始由上往下递增) 枚举类型的使用方法: 1.枚举类型的类型名是由我们自己…

四.STM32F030C8T6 MCU开发之利用 TIM1+ADC1+DMA1 实现5路(3路外部电压模拟信号+内部2路信号)采集

四.STM32F030C8T6 MCU开发之利用 TIM1ADC1DMA1 实现5路(3路外部电压模拟信号内部2路信号)采集 文章目录四.STM32F030C8T6 MCU开发之利用 TIM1ADC1DMA1 实现5路(3路外部电压模拟信号内部2路信号)采集0.总体功能概述ADC 简介1.ADC硬…

数据结构《LinkeList 双向链表》

LinkeList LinkeList 的低层是由双向链表结构组成的,所有元素都是存放到单独的节点当中,通过地址引用将节点串联起来 因此在任意位置插入或删除元素时,都不在需要移动元素,效率较高 下面是双向链表的结构图: 在集合框…