【IPOL阅读】点云双边滤波

news2024/9/20 2:49:37

文章目录

    • 简介
    • 点云滤波
    • 处理结果

简介

IPOL,即Image Processing On Line,理论上是一个期刊,但影响因子很低,只是个SCIE,按理说没什么参考价值。但是,这个网站的所有文章,都附带了源代码和演示窗口,所以对初学者来说非常友好,可以说是相见恨晚的一个网站。

这篇2017年的文章,复现了用于点云的双边滤波算法,并提供了源代码,十分良心。

  • Digne J, De Franchis C. The bilateral filter for point clouds[J]. Image Processing On Line, 2017, 7: 278-287.
  • doi:10.5201/ipol
  • 源码

点云滤波

假设曲面 M \mathcal M M中每个点的法向量为 n ⃗ v \vec n_v n v,那么滤波的目的,是让当前点的位置沿着法向量的方向发生变化

v + δ v ⋅ n ⃗ v v+\delta v\cdot\vec n_v\\ v+δvn v

其中 δ v \delta v δv表示如下

δ v = ∑ p ∈ N ( v ) w d ( ∥ p − v ∥ ) w n ( ∣ ⟨ n ⃗ v , p − v ⟩ ∣ ) ⟨ n ⃗ v , p − v ⟩ ∑ p ∈ N ( v ) w d ( ∥ p − v ∥ ) w n ( ∣ ⟨ n ⃗ v , p − v ⟩ ∣ ) \delta v=\frac{\sum_{p\in N(v)}w_d(\Vert p-v\Vert)w_n(|\langle \vec n_v, p-v\rangle |)\langle \vec n_v, p-v\rangle}{\sum_{p\in N(v)}w_d(\Vert p-v\Vert)w_n(|\langle \vec n_v, p-v\rangle |)} δv=pN(v)wd(pv)wn(n v,pv)pN(v)wd(pv)wn(n v,pv)n v,pv

w d , w n w_d, w_n wd,wn是两个离散函数,在后文中被定义为高斯函数。 ⟨ , ⟩ \langle,\rangle ,表示内积, p , v p,v p,v作为三维点,在计算时当作向量处理。 N ( v ) N(v) N(v)是点 v v v的邻域。这些内容与2003年Fleishman等人发表在TOG上的文章相比,并无差别。

为了加速点云的双边滤波过程,本文通过使用八叉树,将数据划分为多个单元格,将不同单元格分配给不同的线程,从而实现了并行计算。

处理结果

IPOL提供了演示demo,除了输入点云之外,有三个参数需要调节,分别是邻域半径(neighborhood radius),法邻域半径(normal neighborhood radius)和迭代次数(Number of filter iterations),其处理结果如下
在这里插入图片描述

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

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

相关文章

【三步搭建 本地 编程助手 codegeex】

这里写目录标题 第一步 ollama安装常见报错 第二步 下载启动模型下载启动模型常见问题 第三步配置codegeex安装插件本地配置 其他 如果可以联网,vscode装个codegeex插件即可,本次搭建的本地编程助手,解决因安全问题完全无网络的情况下的编程助…

诗文发布模板(python代码打造键盘录入诗文自动排版,MarkDown源码文本)

python最好用的f-string,少量代码打造键盘录入诗文自动排版。 (笔记模板由python脚本于2024年09月19日 19:11:50创建,本篇笔记适合喜欢写诗的pythoner的coder翻阅) 【学习的细节是欢悦的历程】 Python 官网:https://www.python.org/ Free&am…

新手入门大模型教程(非常详细)零基础入门到精通,收藏这一篇就够了

目前大模型非常的火,国内开始流行大模型应用,那么作为程序员对于大模型有什么要了解和学习的我们今天就来研究下。 深度学习基础 因为大模型也是人工智能,人工智能就要先学习一下深度学习,深度学习是机器学习领域中的一个方向。…

Linux通过yum安装Docker

目录 一、安装环境 1.1. 旧的docker包卸载 1.2. 安装常规环境包 1.3. 设置存储库 二、安装Docker社区版 三、解决拉取镜像失败 3.1. 创建文件目录/etc/docker 3.2. 写入镜像配置 https://docs.docker.com/engine/install/centos/ 检测操作系统版本,我操作的…

英飞凌最新AURIX™TC4x芯片介绍

概述: 英飞凌推出最新的AURIX™TC4x系列,突破了电动汽车、ADAS、汽车e/e架构和边缘应用人工智能(AI)的界限。这一代面向未来的微控制器将有助于克服安全可靠的处理性能和效率方面的限制。客户将可缩短快速上市时间并降低整体系统成本。为何它被称为汽车市场新出现的主要颠覆…

SourceTree保姆级教程1:(克隆,提交,推送)

本人认为sourceTree 是最好用的版本管理工具,下面将讲解下sourceTree 客户端工具 克隆,提交,推送 具体使用过程,废话不多说直接上图。 使用步骤: 首先必须要先安装Git和sourceTree,如何按照参考其它文章&…

计算机网络:概述 --- 体系结构

目录 一. 体系结构总览 1.1 OSI七层协议体系结构 1.2 TCP/IP四层(或五层)模型结构 二. 数据传输过程 2.1 同网段传输 2.2 跨网段传输 三. 体系结构相关概念 3.1 实体 3.2 协议 3.3 服务 这里我们专门来讲一下计算机网络中的体系结构。其实我们之前…

力扣1143-最长公共子序列(Java详细题解)

题目链接:1143. 最长公共子序列 - 力扣(LeetCode) 前情提要: 如果你做过718. 最长重复子数组 - 力扣(LeetCode)并且看过我的这篇题解力扣718-最长重复子数组(Java详细题解)-CSDN博…

大数据新视界 --大数据大厂之SaaS模式下的大数据应用:创新与变革

💖💖💖亲爱的朋友们,热烈欢迎你们来到 青云交的博客!能与你们在此邂逅,我满心欢喜,深感无比荣幸。在这个瞬息万变的时代,我们每个人都在苦苦追寻一处能让心灵安然栖息的港湾。而 我的…

网站在线客服插件配置

使用工具:百度爱番番 下载地址: 百度爱番番—企业的一站式智能营销管家 一、下载百度爱番番APP,注册账号 二、 登录app 三、点击设置——站点设置——新建站点 四、设置站点名称——站点地址——PC站点——确定 五、点击配置好的站点的获取代…

Linux新增用户,对用户提权

文章目录 一、创建用户二、删除用户三、对用户进行提权 一、创建用户 adduser进行创建用户,名字最好不用和指令名称相同。 在创建完用户时最好使用sudo passwd username进行对用户密码的修改. 二、删除用户 userdel进行对用户的删除 三、对用户进行提权 新建用…

电商好用的客服话术

在电商交易中,良好的客户服务至关重要。优质的售前服务能够帮助顾客更好地了解商品,做出明智的购买决策;而高效的售后服务则能提升顾客的满意度和忠诚度。今天给大家分享了一些好用的客服售前售后话术。 一、售前 “质量好”相关话术:亲亲&a…

工厂ERP采购管理,销售管理,仓库管理,财务管理,生产加工管理建设方案和源码实现(JAVA)

工厂进销存管理系统是一个集采购管理、仓库管理、生产管理和销售管理于一体的综合解决方案。该系统旨在帮助企业优化流程、提高效率、降低成本,并实时掌握各环节的运营状况。 在采购管理方面,系统能够处理采购订单、供应商管理和采购入库等流程&#xff…

基于SSM的宿舍管理系统的设计与实现 (含源码+sql+视频导入教程+文档+PPT)

👉文末查看项目功能视频演示获取源码sql脚本视频导入教程视频 1 、功能描述 基于SSM的宿舍管理系统9拥有两种角色:管理员和用户 管理员:宿舍管理、学生管理、水电费管理、报修管理、访客管理、各种信息统计报表 用户:个人信息管…

pg 解决锁表问题

SELECT pid, relname, transactionid, mode, granted FROM pg_locksJOIN pg_stat_user_tables ON pg_locks.relation pg_stat_user_tables.relidselect * from pg_stat_activity where datname数据库名 and stateactive查看锁SELECT * FROM pg_stat_activity WHEREwait_even…

xuri/excelize简单使用

main.go文件: package mainimport ("fmt""github.com/xuri/excelize/v2" )func main() {read() // 读excel文件//write() // 写excel文件//readAndWrite() // 读写excel文件 }func read() {f, err : excelize.OpenFile("read.xls…

初写MySQL四张表:(2/4)

今天,我们来写第二张表。因着这四张表以及后续有相应的拓展,这四张环环相扣,所以还未写出第一张表的同学,可以看完第一张表,再来此处: 初写MySQL四张表:(1/4)-CSDN博客 好,今日表格有三张&…

echarts图表一次点击事件却触发多次的解决方法

echarts图表 一次点击事件却触发多次的解决方法 遇到个echarts的问题,点击一次图表却触发多次点击事件,看了下官网介绍了点击事件的解绑事件 let echarts_id document.getElementById("echarts_id");let my_chart this.$echarts.init(echart…

八股文-JVM

是什么?有什么用?谁发明的?什么时候发明的? Java虚拟机,用来运行Java程序,有很多个版本的虚拟机,比如HotSpot,最开始是SUN公司开发人员,和Java一起发布,现在…

VirtualBox增加磁盘并给docker用

在VirtualBox新增磁盘 在虚拟机停止的情况下依次选择,然后创建新磁盘 虚拟机新磁盘创建分区、格式化、挂载分区 开机自动挂载新磁盘分区/dev/sdb1: nano /etc/fstab末尾添加一行: /dev/sdb1 /disk02 e…