当前位置: 首页 > news >正文

遮挡检测--基于角度的遮挡检测方法

文章目录

  • 1基于角度的遮挡检测方法
  • 2遮挡检测遍历方法
  • 2.1方法1--自适应径向扫描方法
  • 2.2方法2--螺旋扫描法
  • 参考

1基于角度的遮挡检测方法

在基于角度的方法中,通过依次分析DSM中沿径向方向的投影光线的角度来识别遮挡。定义α\alphaα角:DSM三维点与相机中心在垂直方向的夹角。从位于物方最低点的DSM单元格出发,分析每个径向剖面上的连续α角,如果该剖面中不存在遮挡,后续DSM单元的α角将逐渐增大。因此,如果α角随着远离相机中心正下方(nadir point)而增加,则相应的DSM单元将被视为可见。反之,当远离相机中心正下方点时,α角突然减小,则随后的DSM单元被认为遮挡,直到α角超过与最后一个可见单元相关的角度。
如图所示,如果在远离相机中心正下方点( N )时α角增大,则认为各自的DSM格点(例如单元A和B)是可见的。在这个例子中,DSM单元C被识别为第一个被遮挡的单元,因为在这个位置( αC < αB),α角出现了的减小的情况。从图中可以看出,与DSM单元D相关的α角超过了最后一个可见单元( B )的角度;因此,D被认为是可见的。相应地,B和D之间的DSM单元在对应的能见度图中被标记为遮挡。
在这里插入图片描述

2遮挡检测遍历方法

对于DSM而言,怎么遍历DSM网格是一个问题。

2.1方法1–自适应径向扫描方法

文中提出了以相机中心为原点,类似极坐标似的搜索方式。
在这里插入图片描述

如上图所示,使用径向扫描算法进行遍历,该方法从零方位角( θ0 = 0)沿径向的α角开始,在检查DSM单元沿该剖面的可见性后,算法通过在当前方位角( θ0 )上添加一个预定义的角度值(∆θ )移动到下一个径向剖面。通过径向剖面并沿其应用基于角度的方法来检测遮挡。对于每个DSM单元,计算各自的R、θ和α值,R是DSM单元到相机中心正下方点的距离。如图右所示。定义一个R到θ数组用于存储与每个DSM单元相关的α角。此外,定义了两个与R到θ数组具有相同幅度和单元大小的数组来存储DSM单元的X和Y坐标。
方位角增量(∆θ)是关键。太小的∆θ会导致重复访问DSM单元,太大的∆θ会导致漏掉边缘的DSM单元。通过自适应径向扫描方法来避免这个问题:即让Δθ随着径向距离R的增加而减小。如下图所示,在该技术中,DSM被划分为以相机中心正下方点( N )为中心的同心放射状区域,如下图 (左)所示。从下图 (左)可以看出,随着径向距离( R )的增加,截面的Δθ减小。因此,下图 (右)所示,R到θ数组中的行数随着R的增大而增大。径向截面的数量和∆θ值是根据相应图像覆盖的DSM面积和DSM单元大小定义的。对于每个径向截面,∆θ可以设置为一个值,使得同心圆对应的∆θ角度的弧长不大于DSM单元尺寸。
在这里插入图片描述

2.2方法2–螺旋扫描法

螺旋扫描方法以螺旋模式扫描从相机中心正下方点对应的DSM单元开始,同时直接检查沿径向的角度(即:遮挡检测用的角度),而不需要DSM分区或额外的阵列。
在这里插入图片描述

参考

《New Methodologies for True Orthophoto Generation》(原文)
《True Orthophoto Generation from Aerial Frame Images and LiDAR Data: An Update》

相关文章:

遮挡检测--基于角度的遮挡检测方法

文章目录1基于角度的遮挡检测方法2遮挡检测遍历方法2.1方法1--自适应径向扫描方法2.2方法2--螺旋扫描法参考1基于角度的遮挡检测方法 在基于角度的方法中&#xff0c;通过依次分析DSM中沿径向方向的投影光线的角度来识别遮挡。定义α\alphaα角&#xff1a;DSM三维点与相机中心…...

【luogu CF1098D】Eels(结论)

Eels 题目链接&#xff1a;luogu CF1098D 题目大意 有一个可重集&#xff0c;每次操作会放进去一个数或者取出一个数。 然后每次操作完之后&#xff0c;问你对这个集合进行操作&#xff0c;每次选出两个数 a,b 加起来合并回去&#xff0c;直到集合中只剩一个数&#xff0c;要…...

【java】遍历文件夹输出所有文件的文件名与绝对路径,在windows环境

【java】遍历文件夹输出所有文件的文件名与绝对路径&#xff0c;在windows环境 String filepath "D:\\CloudMusic\\";//D盘下的file文件夹的目录File file new File(filepath);//File类型可以是文件也可以是文件夹File[] fileList file.listFiles();//将该目录下的…...

Window问题详解(下)

建议先看一下 Window问题详解(上) 思路② 既然会超时,那该怎么办呢? 显然需要一个更快速的方法来解决这个问题! 我们先来观察一下图片: 我们发现,每一次选中的数都会增加下一个。 !!!!! 因此,我们可以根据此特性优化时间!! 第一次先求出前 k − 1 k-1 k−...

Kafka部署与SpringBoot集成

Kafka与ZooKeeper Apache ZooKeeper是一个基于观察者模式的分布式服务管理框架&#xff0c;即服务注册中心。同时ZooKeeper还具有存储数据的能力。Kafka的每台服务器作为一个broker注册到ZooKeeper&#xff0c;多个broker借助ZooKeeper形成了Kafka集群。同时ZooKeeper会保存一…...

c++11 标准模板(STL)(std::unordered_set)(十三)

定义于头文件 <unordered_set> template< class Key, class Hash std::hash<Key>, class KeyEqual std::equal_to<Key>, class Allocator std::allocator<Key> > class unordered_set;(1)(C11 起)namespace pmr { templ…...

【2023】DevOps、SRE、运维开发面试宝典之ELKStack相关面试题

文章目录 1、elasticsearch的应用场景2、elasticsearch的特点3、Elasticsearch集群三种状态分别是什么?代表什么?4、Elasticsearch集群的优化方面5、Elasticsearch集群防止脑裂的配置参数?6、ELK日志采集平台架构组件介绍?7、Logstash组件的作用?8、收集Kubernetes集群程序…...

Hive中的高阶函数(二)

1、UDTF之explode函数 explode(array)将array列表里的每个元素生成一行&#xff1b; explode(map)将map里的每一对元素作为一行&#xff0c;其中key为一列&#xff0c;value为一列&#xff1b; 一般情况下&#xff0c;explode函数可以直接使用即可&#xff0c;也可以根据需要结…...

Java集合知识点总结

ArrayListLinkedListLinkedHashSetHashSetTreeSetHashTableHashMapTreeMap是否有序有序有序有序无序自然排序&#xff08;Comparator&#xff09;进行排序&#xff0c;默认升序使用的是重写comparTo方法无序无序自动排序元素是否为空可为null可为null不允许可为null不允许键允许…...

培训班出身的同学简历怎么做?面试要注意哪些?来自资深大厂HR的忠告

目录 1 不少培训班候选人的简历中&#xff0c;缺乏足够的商业项目年限 2 直接描述培训班学习经历会带来的负面影响 3 大龄转行Vs年轻的初级程序员&#xff0c;公司一般会如何选择&#xff1f; 4 经过培训班突击后&#xff0c;可以先面试小公司 5 面试官怎么面试有培训班经历…...

Hive3.1.3安装部署_最小化部署_元数据MySQL部署_Hiveserver2部署_metastore部署---大数据之Hive工作笔记0012

hbase 实时分析 hive 离线分析 这里是新版本的hive3.1.3的安装 关于hive的原理之前的博客已经详细说了 可以看到上面是hive运行的原理图 词法分析 语法分析...

javascript:void(0) 含义

我们经常会使用到 javascript:void(0) 这样的代码&#xff0c;那么在 JavaScript 中 javascript:void(0) 代表的是什么意思呢&#xff1f;javascript:void(0) 中最关键的是 void 关键字&#xff0c; void 是 JavaScript 中非常重要的关键字&#xff0c;该操作符指定要计算一个表…...

不用机器学习不用大数据,给你讲通ChatGPT的深层原理

ChatGPT现在看来已经异常火爆了&#xff0c;很多人已经熟知&#xff0c;并且开始练习使用或者开始利用他开始实践了。但仍然有很多人在观望&#xff0c;在疑惑&#xff0c;今天狗哥不用那些高端大气的机器学习亦或是大数据还给你讲通ChatGPT深层到底是个啥逻辑。 目录 1. 聊家…...

JavaScript中的循环类型

JavaScript 中有三种主要的循环类型: for、while 和 do...while。 for: 循环指定次数。 例如&#xff1a; for (let i 0; i < 5; i) {console.log(i); } while: 当条件为真时循环。 例如&#xff1a; let i 0; while (i < 5) {console.log(i);i; } do...while: 先执…...

Spring Boot+Vue前后端分离项目练习02之网盘项目利用token进行登陆验证

1.添加依赖 首先需要添加jwt对应的依赖。 <dependency><groupId>io.jsonwebtoken</groupId><artifactId>jjwt</artifactId><version>0.9.1</version></dependency>2.添加配置 JWT由三部分构成&#xff0c;分别是 header, pa…...

springcloud常见面试题(2023最新)

目录前言一.微服务1.微服务是什么&#xff1f;2.你知道哪些RPC框架3.springCloud和Dubbo有什么区别4. SpringCloud由什么组成二.Spring Cloud Eureka1.Eureka包含几个组件2.Eureka的工作原理3.说一下什么是Eureka的自我保护机制4.什么是CAP原则5.都是服务注册中心&#xff0c;E…...

用户态驱动的两种方式-ixy学习

介绍在Linux下有两种启用用户态驱动的子系统&#xff1a;一个是UIO&#xff0c;另一个是VFIO&#xff0c;ixy这两种都支持。 UIO通过虚拟文件系统sysfs下的内存映射文件来暴露所有必要的接口以完成用户态的驱动。这些基于文件的系统调用接口给了我们充足的权限来获取设备资源而…...

机器学习 | 线性回归(单变量)

前文回顾&#xff1a;机器学习概述&#x1f4da;线性回归概念我们要使用一个数据集&#xff0c;数据集包含俄勒冈州波特兰市的住房价格。在这里&#xff0c;我要根据不同房屋尺寸所售出的价格&#xff0c;画出我的数据集。比方说&#xff0c;如果你朋友的房子是 1250 平方尺大小…...

C++基础知识【3】控制语句

目录 前言 一、条件语句 1.1、if 语句 1.2、if-else 语句 1.3、switch 语句 二、循环语句 2.1、while 循环 2.2、do-while 循环 2.3、for 循环 三、跳转语句 3.1、break语句 3.2、continue语句 3.3、goto语句 四、一些新特性 4.1、if 语句和 switch 语句…...

ImportError: Can not find the shared library: libhdfs3.so解决方案

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。喜欢通过博客创作的方式对所学的知识进行总结与归纳,不仅形成深入且独到的理…...

零门槛NAS搭建:WinNAS如何让普通电脑秒变私有云?

一、核心优势&#xff1a;专为Windows用户设计的极简NAS WinNAS由深圳耘想存储科技开发&#xff0c;是一款收费低廉但功能全面的Windows NAS工具&#xff0c;主打“无学习成本部署” 。与其他NAS软件相比&#xff0c;其优势在于&#xff1a; 无需硬件改造&#xff1a;将任意W…...

Docker 运行 Kafka 带 SASL 认证教程

Docker 运行 Kafka 带 SASL 认证教程 Docker 运行 Kafka 带 SASL 认证教程一、说明二、环境准备三、编写 Docker Compose 和 jaas文件docker-compose.yml代码说明&#xff1a;server_jaas.conf 四、启动服务五、验证服务六、连接kafka服务七、总结 Docker 运行 Kafka 带 SASL 认…...

ESP32 I2S音频总线学习笔记(四): INMP441采集音频并实时播放

简介 前面两期文章我们介绍了I2S的读取和写入&#xff0c;一个是通过INMP441麦克风模块采集音频&#xff0c;一个是通过PCM5102A模块播放音频&#xff0c;那如果我们将两者结合起来&#xff0c;将麦克风采集到的音频通过PCM5102A播放&#xff0c;是不是就可以做一个扩音器了呢…...

Nginx server_name 配置说明

Nginx 是一个高性能的反向代理和负载均衡服务器&#xff0c;其核心配置之一是 server 块中的 server_name 指令。server_name 决定了 Nginx 如何根据客户端请求的 Host 头匹配对应的虚拟主机&#xff08;Virtual Host&#xff09;。 1. 简介 Nginx 使用 server_name 指令来确定…...

鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院查看报告小程序

一、开发环境准备 ​​工具安装​​&#xff1a; 下载安装DevEco Studio 4.0&#xff08;支持HarmonyOS 5&#xff09;配置HarmonyOS SDK 5.0确保Node.js版本≥14 ​​项目初始化​​&#xff1a; ohpm init harmony/hospital-report-app 二、核心功能模块实现 1. 报告列表…...

从零实现STL哈希容器:unordered_map/unordered_set封装详解

本篇文章是对C学习的STL哈希容器自主实现部分的学习分享 希望也能为你带来些帮助~ 那咱们废话不多说&#xff0c;直接开始吧&#xff01; 一、源码结构分析 1. SGISTL30实现剖析 // hash_set核心结构 template <class Value, class HashFcn, ...> class hash_set {ty…...

【Oracle】分区表

个人主页&#xff1a;Guiat 归属专栏&#xff1a;Oracle 文章目录 1. 分区表基础概述1.1 分区表的概念与优势1.2 分区类型概览1.3 分区表的工作原理 2. 范围分区 (RANGE Partitioning)2.1 基础范围分区2.1.1 按日期范围分区2.1.2 按数值范围分区 2.2 间隔分区 (INTERVAL Partit…...

[免费]微信小程序问卷调查系统(SpringBoot后端+Vue管理端)【论文+源码+SQL脚本】

大家好&#xff0c;我是java1234_小锋老师&#xff0c;看到一个不错的微信小程序问卷调查系统(SpringBoot后端Vue管理端)【论文源码SQL脚本】&#xff0c;分享下哈。 项目视频演示 【免费】微信小程序问卷调查系统(SpringBoot后端Vue管理端) Java毕业设计_哔哩哔哩_bilibili 项…...

逻辑回归暴力训练预测金融欺诈

简述 「使用逻辑回归暴力预测金融欺诈&#xff0c;并不断增加特征维度持续测试」的做法&#xff0c;体现了一种逐步建模与迭代验证的实验思路&#xff0c;在金融欺诈检测中非常有价值&#xff0c;本文作为一篇回顾性记录了早年间公司给某行做反欺诈预测用到的技术和思路。百度…...

什么是VR全景技术

VR全景技术&#xff0c;全称为虚拟现实全景技术&#xff0c;是通过计算机图像模拟生成三维空间中的虚拟世界&#xff0c;使用户能够在该虚拟世界中进行全方位、无死角的观察和交互的技术。VR全景技术模拟人在真实空间中的视觉体验&#xff0c;结合图文、3D、音视频等多媒体元素…...