三维测量与建模笔记 - 2.2 射影几何




教程中H矩阵写的有问题,上图中H矩阵应该是(n+1) x (m+1)
共点不变性,下图中黄色方块标记的点,在射影变换前后,虽然直线的形状有所变化,但仍然相交于同一个点。

共线不变性,下图黄色标记的两个点,在射影变换前后,仍然在同一条直线上。

交比看下图,中心点为S,发出四条射线(绿色),蓝色直线与这四条射线相交于A,B,C,D四个交点,交比定义为AB*CD/BC*AD。

关于交比的详细说明,可参考如下链接:
【几米说平面几何】几何进阶知识(一)交比 - 哔哩哔哩交比,是一个对绝大多数读者比较陌生的话题。但它是属于射影几何的重要内容。大家可能会纳闷,up你不是研究竞赛几何的吗?为什么会讲这个比较进阶的知识呢?其实我们在初等几何的研究上,只会用到这个庞大体系的冰山一角,而且不甚严谨。但是这个知识作为一个研究问题的工具,如果掌握得当,会让你对很多问题有新的观点和思路。比如调和点列,完全四边形,笛沙格定理等等。本知识就好似SOS技术之于不等式,升幂定理之于数论,虽然重要,但不必要。如果大家比较功利只是为了考联赛的话,请跳过本文的阅读,避免带来无意义的时间浪费!
https://www.bilibili.com/read/cv13253421/

对于齐次坐标理解,可以参考下图,可以知道W=1时,相当于X点所在的平面抬升到了垂直高度为1的位置,对于无穷远的点,W=0, 因此无穷远的点相当于这个平面回到了原点高度位置。






平面和点的表示实际都是一个4维向量(齐次)





上图对比了射影变换和仿射变换的区别,对于射影变换,平行四边形变换后平行的线关系会变化,而仿射变换不会改变平行关系。

上图中是矫正矩阵,可以将射影变换结果矫正为仿射变换的结果,可以理解为把平行关系恢复。

如上图,假设相机拍摄到的画面是左下角的图像,我们可以通过找到射影变换空间里的两条平行线l1,l2得到射影空间下两条直线的交点v1(通过叉积),同理可得到l3,l4的交点v2。连接V1,V2可得到对应的无穷远的直线。找到这条无穷远直线后,我们就能得到
矫正矩阵,这样就能将射影变换空间的坐标转换到仿射变换空间的坐标中。
下图总结了2D和3D变换中的各种变换的自由度


相关文章:
三维测量与建模笔记 - 2.2 射影几何
教程中H矩阵写的有问题,上图中H矩阵应该是(n1) x (m1) 共点不变性,下图中黄色方块标记的点,在射影变换前后,虽然直线的形状有所变化,但仍然相交于同一个点。 共线不变性,下图黄色标记的两个点,在…...
论文速读:简化目标检测的无源域适应-有效的自我训练策略和性能洞察(ECCV2024)
中文标题:简化目标检测的无源域适应:有效的自我训练策略和性能洞察 原文标题:Simplifying Source-Free Domain Adaptation for Object Detection: Effective Self-Training Strategies and Performance Insights 1、Abstract 本文重点关注计算…...
ros与mqtt相互转换
vda5050 VDA5050协议介绍 和 详细翻译-CSDN博客 ros与mqtt相互转换 如何转换的,通过某个中转包,获取ros的消息然后以需要的格式转换为mqtt 需要的参数 ros相关 parameters[ (ros_subscriber_type, vda5050_msgs/NodeState), (ros_subscriber_queue…...
Golang | Leetcode Golang题解之第522题最长特殊序列II
题目: 题解: func isSubseq(s, t string) bool {ptS : 0for ptT : range t {if s[ptS] t[ptT] {if ptS; ptS len(s) {return true}}}return false }func findLUSlength(strs []string) int {ans : -1 next:for i, s : range strs {for j, t : range s…...
安卓开发之数据库的创建与删除
目录 前言:基础夯实:数据库的创建数据库的删除注意事项 效果展示:遇到问题:如何在虚拟机里面找到这个文件首先,找到虚拟机文件的位置其次,找到数据库文件的位置 核心代码: 前言: 安…...
数据结构:LRUCache
什么是LRUCache 首先我们来看看什么是cache 缓存(Cache)通常用于两个速度不同的介质之间,以提高数据访问的速度和效率。这里有几个典型的应用场景: 处理器和内存之间: 处理器(CPU)的运算速度远…...
shell脚本案例:创建用户和组
使用场景 在部署程序时,往往首要任务是创建用户和组。有的程序可能用到的组、用户比较多;且不知道服务器环境是否已经有了所需的组和用户。所以针对这个情况,根据Oracle RAC部署时的实际情况写了个脚本。 Linux版本 脚本代码 #!/bin/bash …...
C++笔试题之实现一个定时器
一.定时器(timer)的需求 1.执行定时任务的时,主线程不阻塞,所以timer必须至少持有一个线程用于执行定时任务 2.考虑到timer线程资源的合理利用,一个timer需要能够管理多个定时任务,所以timer要支持增删任务…...
【英特尔IA-32架构软件开发者开发手册第3卷:系统编程指南】2001年版翻译,2-13
文件下载与邀请翻译者 学习英特尔开发手册,最好手里这个手册文件。原版是PDF文件。点击下方链接了解下载方法。 讲解下载英特尔开发手册的文章 翻译英特尔开发手册,会是一件耗时费力的工作。如果有愿意和我一起来做这件事的,那么ÿ…...
快消零售行业的培训创新:构建在线培训知识库
在快速消费品(FMCG)行业中,员工的培训和发展对于保持竞争力至关重要。随着电子商务的兴起和消费者行为的变化,快消零售行业需要不断适应新的市场趋势。在线培训知识库作为一种有效的培训工具,可以帮助企业提升员工技能…...
【AI开源项目】Botpress - 开源智能聊天机器人平台及其部署方案
文章目录 Botpress 概述Botpress 的定位 Botpress 的主要特点1. OpenAI 集成2. 易于使用3. 定制和扩展性4. 多平台支持5. 集成和扩展 API6. 活跃的社区和详尽的文档 部署方案集成集成开发集成部署机器人示例开发工具代理本地开发先决条件从源代码构建 Botpress 如何解决常见问题…...
一文读懂系列:SSL加密流量检测技术详解
SSL加密流量检测功能的主要目的是为了对加密流量做解密处理,并对解密后的流量做内容安全检查(比如反病毒、入侵防御、URL远程查询、内容过滤、文件过滤和邮件过滤等)和审计(防止信息泄露)。接下来我们详细介绍SSL加密流…...
Android Studio各种历史版本
下载地址:AndroidDevTools - Android开发工具 Android SDK下载 Android Studio下载 Gradle下载 SDK Tools下载...
大数据导论及分布式存储HadoopHDFS入门
思维导图 数据导论 数据是什么? 进入21世纪,我们的生活就迈入了"数据时代" 作为21世纪的新青年,"数据"一词经常出现。 数据无时无刻的在影响着我们的现实生活 什么是数据? 数据又如何影响现实生活? 数据…...
语言模型的采样方法
语言模型的采样方法 语言模型的输出为一个向量,该向量的每一维代表着词典中对应词的概率。 在采用自回归范式的文本生成任务中,语言模型将依次生成一组向量并将其解码为文本。将这组向量解码为文本的过程被成为语言模型解码。 解码过程显著影响着生成文本…...
使用 Nginx 配置真实 IP 地址转发
使用 Nginx 配置真实 IP 地址转发 在许多 web 应用程序中,获取客户端的真实 IP 地址非常重要,尤其是在使用反向代理服务器(如 Nginx)时。本文将指导你如何在 Nginx 中配置 X-Real-IP 和 X-Forwarded-For 头部,以确保你…...
WPF+MVVM案例实战与特效(二十四)- 粒子字体效果实现
文章目录 1、案例效果2、案例实现1、文件创建2.代码实现3、界面与功能代码3、总结1、案例效果 提示:这里可以添加本文要记录的大概内容: 2、案例实现 1、文件创建 打开 Wpf_Examples 项目,在 Views 文件夹下创建窗体界面 ParticleWindow.xaml,在 Models 文件夹下创建粒子…...
Oracle视频基础1.4.3练习
15个视频 1.4.3 できない dbca删除数据库 id ls cd cd dbs ls ls -l dbca# delete a database 勾选 # chris 勾选手动删除数据库 ls ls -l ls -l cd /u01/oradata ls cd /u01/admin/ ls cd chris/ ls clear 初始化参数文件,admin,数据文件#新版本了…...
energy 发布 v2.4.5
更新内容 修复 energy cli install 命令安装开发环境 修复 动态库加载error未暴露 增加 JS ipc.on 监听模式,异步返回结果 修复 energy cli 不能强制退出问题 修复 MacOS 开发模式 debug 时不更新 helper 进程 优化 energy cli 在 MacOS 开发模式和安装包制作 link…...
一文详解工单管理系统,工单系统是什么意思
在现代企业管理中,工单管理系统已经成为提升效率和客户满意度的重要工具。随着企业规模的扩大和业务复杂性的增加,传统的手工工单处理方式已经无法满足企业的需求。本文将详细解析工单管理系统的定义、功能、优势,并推荐一款优秀的工单管理系…...
从package.xml到CMakeLists.txt:手把手教你配置一个ROS1机器人控制包(附完整项目模板)
从package.xml到CMakeLists.txt:构建工业级ROS1机器人控制包的完整指南 在机器人操作系统(ROS)开发中,功能包的配置质量直接影响项目的可维护性和扩展性。本文将带您深入理解ROS1功能包的核心配置文件,通过一个完整的工业机器人控制包案例&am…...
别再用requests硬刚了!用Selenium+Playwright搞定小红书评论爬虫(附完整Cookie处理方案)
突破小红书反爬:Selenium与Playwright实战对比与Cookie处理全指南 在小红书这类社交电商平台的数据挖掘中,评论爬取一直是开发者面临的棘手挑战。传统requests库直接调用API的方式看似简单,但面对小红书日益完善的反爬机制——包括动态Cookie…...
高性能Python爬虫数据预处理流水线:PyTorch 2.8与Dask并行计算实战
高性能Python爬虫数据预处理流水线:PyTorch 2.8与Dask并行计算实战 1. 爬虫数据处理的现实挑战 每天都有海量数据从互联网上被爬取下来,但很少有人告诉你这些原始数据有多"脏"。我曾经接手过一个电商评论分析项目,原始数据里混杂…...
如何快速配置跨平台鼠标连点器:终极效率提升指南
如何快速配置跨平台鼠标连点器:终极效率提升指南 【免费下载链接】MouseClick 🖱️ MouseClick 🖱️ 是一款功能强大的鼠标连点器和管理工具,采用 QT Widget 开发 ,具备跨平台兼容性 。软件界面美观 ,操作直…...
用噪音打破听觉恐怖谷:RTE 开发者社区发布 RealNoise™ TTS:全球首个原生合成动态声场的语音大模型
在过去的几年里,语音 AI 行业的内卷方向始终如一:更高的采样率、更低的延迟、更纯净的音质。我们不断训练模型去剔除哪怕最微小的背景杂音,追求实验室级别的完美信噪比(SNR)。 然而,当我们在真实的实时互动…...
实战应用:基于快马平台开发一个具备节点测速功能的网络工具面板
最近在折腾服务器节点管理时,发现手动测试各个节点的延迟特别麻烦。正好看到InsCode(快马)平台这个在线开发环境,就尝试用它快速搭建了一个带测速功能的网络工具面板。整个过程比想象中简单很多,分享下具体实现思路。 项目构思 这个工具的核…...
3步释放20GB空间:Windows驱动清理神器完全指南
3步释放20GB空间:Windows驱动清理神器完全指南 【免费下载链接】DriverStoreExplorer Driver Store Explorer 项目地址: https://gitcode.com/gh_mirrors/dr/DriverStoreExplorer 驱动管理痛点分析 系统臃肿的隐形杀手 随着电脑使用时间增长,Wi…...
开源证书工具故障排查:ACME协议证书续期问题从现象到本质的深度解析
开源证书工具故障排查:ACME协议证书续期问题从现象到本质的深度解析 【免费下载链接】win-acme Automate SSL/TLS certificates on Windows with ease 项目地址: https://gitcode.com/gh_mirrors/wi/win-acme 问题诊断:NginxCertbot环境下的证书续…...
iOS高级开发工程师技术体系与民航行业实践深度解析
第一章 iOS开发技术核心体系 1.1 Swift与Objective-C双语言生态 现代iOS开发需要掌握两种核心语言的技术特点: // Swift类型安全示例 enum FlightStatus {case scheduled, departed, landed, canceled }var currentStatus: FlightStatus = .scheduled// 编译器会阻止非法状…...
借助快马平台优化蓝桥杯python解题代码,提升算法执行效率
最近在准备蓝桥杯Python组的比赛,发现很多题目对算法效率要求很高。就拿经典的"最大子序列和"问题来说,不同的解法效率差异巨大。今天分享一下我是如何借助InsCode(快马)平台来快速验证不同解法的效率的。 问题理解 最大子序列和问题要求在一个…...
