3D標定中的平面約束-平面方程的幾何意義

平面方程的一般形式為 Ax+By+Cz+D=0,其中系數 A、B、C、D共同決定了平面的幾何特性。

系數對平面姿態的影響

    • 1. 法向量方向
    • 2. 平面位置
    • 3. 比例關系
    • 4. 姿態變換
    • 5.平面空間變換

1. 法向量方向

法向量方向由 A、B、C 決定

  • 核心作用:系數 A、B、C 構成的向量 (A,B,C)
    是平面的法向量,決定了平面的方向(即平面的傾斜姿態)。法向量的方向垂直于平面,任何改變這三個系數的操作都會調整平面的傾斜角度和旋轉姿態
  • 示例: 若 A 增大,法向量在 x 軸方向的分量增加,平面繞 y 或 z 軸的傾斜角度改變。 若 B=0,平面法向量垂直于 y軸,平面平行于 y 軸方向。

2. 平面位置

平面位置:由 D 決定

  • 核心作用:系數 D 決定了平面在三維空間中的平移位置,即平面沿法向量方向的偏移量。改變 D 會平移平面,但不影響其方向
  • 示例: 若 D 從 0 變為 5,平面將沿法向量方向遠離原點 5 個單位,但平面的傾斜角度不變。

3. 比例關系

比例關系:系數間的相對比例

  • 核心作用:系數 A、B、C 的比例關系決定了法向量的具體方向,而 D 的絕對值大小影響平面的位置偏移程度。例如:方程
    2x+4y+6z+3=0 與 x+2y+3z+1.5=0 表示同一平面(系數成比例),但 D 不同會導致平面位置不同
  • 特殊情形:A=0,平面平行于 x 軸;若 A=B=0,平面平行于 x-y 平面

4. 姿態變換

姿態變換:系數與空間變換的關聯

  • 核心作用:當平面經過旋轉或平移變換時,其方程系數會相應改變: 旋轉:旋轉矩陣作用于法向量 (A,B,C),改變平面的方向。平移:平移向量影響 D 的值,調整平面位置
  • 示例: 若平面繞 y 軸旋轉 90°,新的法向量為 (?C,B,A),方程變為 ?Cx+By+Az+D ′ =0,其中 D′ 由原方程和平移量決定

5.平面空間變換

3D標定完成后,會獲取空間變換矩陣(相機坐標系與標定板坐標系),不僅3D點可以通過該變換矩陣進行轉換,平面也可以。
轉換后平面推導過程如下:

1、 平面方程與變換矩陣的表示
原平面方程:設原平面方程為 Ax+By+Cz+D=0,法向量為
在這里插入圖片描述
變換矩陣:假設已知變換矩陣為齊次坐標下的4×4矩陣 M

其中R 為3x3的旋轉矩陣(在3D標定中無縮放),
t 為平移向量:
在這里插入圖片描述
2、法向量的變換
法向量是協變向量,其變換需使用旋轉矩陣的逆轉置,即:
在這里插入圖片描述

  • 推導: 若點變換為 p′=R p+t,則平面方程需滿足 n ′ ?(p ′ ?t)+D ′ =0。代入原方程 n?p+D=0,可得
    在這里插入圖片描述
    3、 偏移量的變換
    平移變換會影響平面的位置,偏移量 D 需重新計算。設原平面上一點 p0 滿足 n?p 0+D=0,變換后該點變為:
    p0′=R p0+t
    新平面方程應滿足 n ′ ?p 0′ +D ′ =0,解得:D ′ =?n ′ ?p 0′ =?n ′ ?(R p0+t)

4、組合變換后的平面方程
綜合上述步驟,變換后的平面方程為:A ′ x+B ′ y+C ′ z+D ′ =0
其中:

  • 新法向量:

    在這里插入圖片描述

  • 新偏移量:D ′ =D?n ′ ?t(若原平面經過平移)。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/72647.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/72647.shtml
英文地址,請注明出處:http://en.pswp.cn/web/72647.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

C/C++藍橋杯算法真題打卡(Day6)

一、P8615 [藍橋杯 2014 國 C] 拼接平方數 - 洛谷 方法一&#xff1a;算法代碼&#xff08;字符串分割法&#xff09; #include<bits/stdc.h> // 包含標準庫中的所有頭文件&#xff0c;方便編程 using namespace std; // 使用標準命名空間&#xff0c;避免每次調用…

如何在 GoLand 中設置默認項目文件夾

在使用 GoLand 進行開發時&#xff0c;設置一個默認的項目文件夾可以大大提高工作效率。默認項目文件夾會在你打開或新建項目時自動預選&#xff0c;避免每次都需要手動導航到目標目錄。本文將詳細介紹如何在 GoLand 中設置默認項目文件夾。 步驟一&#xff1a;打開系統設置 …

DeepSeek私有化部署與安裝瀏覽器插件內網穿透遠程訪問實戰

文章目錄 前言1. 本地部署OllamaDeepSeek2. Page Assist瀏覽器插件安裝與配置3. 簡單使用演示4. 遠程調用大模型5. 安裝內網穿透6. 配置固定公網地址 前言 最近&#xff0c;國產AI大模型Deepseek成了網紅爆款&#xff0c;大家紛紛想體驗它的魅力。但隨著熱度的攀升&#xff0c…

Docker運行postgreSQL,由于異常啟動或者退出后,提示could not locate a valid checkpoint record

pg_resetwal 是 PostgreSQL 的“急救工具”&#xff0c;用于在極端情況下修復因 WAL 或控制文件損壞導致的啟動問題。 但需注意&#xff1a; 風險極高&#xff0c;可能導致數據不一致。必須立即轉儲并恢復&#xff0c;避免直接在修復后的數據庫中執行寫操作。僅在備份后使用&…

pytorch小記(十):pytorch中torch.tril 和 torch.triu 詳解

pytorch小記&#xff08;十&#xff09;&#xff1a;pytorch中torch.tril 和 torch.triu 詳解 PyTorch torch.tril 和 torch.triu 詳解1. torch.tril&#xff08;計算下三角矩陣&#xff09;&#x1f4cc; 作用&#x1f50d; 語法&#x1f539; 參數&#x1f4cc; 示例&#x1…

Java基礎與集合

參考 Java基礎知識詳解&#xff1a;從面向對象到異常處理-CSDN博客 2024年 Java 面試八股文&#xff08;20w字&#xff09;_java面試八股文-CSDN博客 基礎知識 java概述 什么是java&#xff1f; java是一種面向對象的編程語言 java特點 面向對象&#xff08;繼承&#…

【R語言】二項分布,正態分布,極大似然估計實現

二項分布 生成二項分布概率 s <- 0:60 prob <- dbinom(s, size 60, prob 1/6)s <- 0:60&#xff1a;生成 0 到 60 之間的整數&#xff0c;表示可能的成功次數。 dbinom(s, size 60, prob 1/6)dbinom(x, size, prob) 計算二項分布的概率質量函數&#xff08;PMF…

【C語言】:學生管理系統(多文件版)

一、文件框架 二、Data data.txt 三、Inc 1. list.h 學生結構體 #ifndef __LIST_H__ #define __LIST_H__#include <stdio.h> #include <stdlib.h> #include <string.h> #include <stdbool.h> #include <time.h>#define MAX_LEN 20// 學生信息…

OpenResty/Lua 編碼指南/指南

很多開發語言都有自己的編碼規范&#xff0c;來告訴開發者這個領域內一些約定俗成的東西&#xff0c;讓大家寫的代碼風格保持一致&#xff0c;并且避免一些常見的陷阱。這對于新手來說是非常友好的&#xff0c;可以讓初學者快速準確地上手。比如 Python 的 PEP 80&#xff0c;就…

數據結構 -- 二叉樹的存儲結構

二叉樹的存儲結構 順序存儲 #define MaxSize 100 struct TreeNode{ElemType value; //結點中的數據元素bool isEmpty; //結點元素是否為空 };//定義一個長度為MaxSize的數組t&#xff0c;按照從上至下、從左至右的順序依次完成存儲完全二叉樹中的各個節點 TreeNode t[MaxSi…

Linux系統移植篇(十一)Linux 內核啟動流程

要分析 Linux 啟動流程&#xff0c;同樣需要先編譯一下 Linux 源碼&#xff0c;因為有很多文件是需要編譯才 會生成的。首先分析 Linux 內核的連接腳本文件 arch/arm/kernel/vmlinux.lds&#xff0c;通過鏈接腳本可以 找到 Linux 內核的第一行程序是從哪里執行的。vmlinux.lds …

【Docker入門】構建推送第一個Docker映像

【Docker入門】構建推送第一個Docker映像 Build and Push the First Docker Image By JacksonML Docker的容器(Container)映像是輕量級的可執行獨立包&#xff0c;包含代碼、運行時、庫、環境變量以及配置文件&#xff0c;它對于運行軟件至關重要。注冊表可在團隊間分享映像。…

【eNSP實戰】(續)一個AC多個VAP的實現—將隧道轉發改成直接轉發

在 一個AC多個VAP的實現—CAPWAP隧道轉發 此篇文章配置的基礎上&#xff0c;將隧道轉發改成直接轉發 一、改成直接轉發需要改動的配置 &#xff08;一&#xff09;將連接AP的接口改成trunk口&#xff0c;并允許vlan100、101、102通過 [AC1]interface GigabitEthernet 0/0/8 …

SPI 總線協議

1、協議介紹 SPI&#xff0c;是英語 Serial Peripheral interface 的縮寫&#xff0c;顧名思義就是串行外圍設備接口。是 Motorola 首先在其 MC68HCXX 系列處理器上定義的。 SPI&#xff0c;是一種高速的&#xff0c;全雙工&#xff0c;同步的通信總線。主節點或子節點的數據在…

我愛學算法之——滑動窗口攻克子數組和子串難題(上)

現在來學習"滑動窗口"這一算法思想。 至于什么是"滑動窗口"呢&#xff1f;簡單來說就是同向雙指針&#xff1b;現在來通過題目來了解什么是"滑動窗口" 一、長度最小的子數組 題目鏈接&#xff1a;長度最小的子數組 題目解析 先來看題目&#…

ora-600 ktugct: corruption detected---惜分飛

接手一個oracle 21c的庫恢復請求,通過Oracle數據庫異常恢復檢查腳本(Oracle Database Recovery Check)腳本檢測之后,發現undo文件offline之后,做了resetlogs操作,導致該文件目前處于WRONG RESETLOGS狀態 嘗試恢復數據庫ORA-16433錯誤 SQL> recover datafile 1; ORA-00283:…

20. Excel 自動化:Excel 對象模型

一 Excel 對象模型是什么 Excel對象模型是Excel圖形用戶界面的層次結構表示&#xff0c;它允許開發者通過編程來操作Excel的各種組件&#xff0c;如工作簿、工作表、單元格等。 xlwings 是一個Python庫&#xff0c;它允許Python腳本與Excel進行交互。與一些其他Python庫&#x…

IIS 服務器日志和性能監控

Internet Information Services &#xff08;IIS&#xff09; 是 Microsoft 提供的一款功能強大、靈活且可擴展的 Web 服務器&#xff0c;用于托管網站、服務和應用程序。IIS 支持 HTTP、HTTPS、FTP、SMTP 和更多用于提供網頁的協議&#xff0c;因此廣泛用于企業環境。 IIS 的…

jenkins pipline 自動化測試

以下是一個典型的 Jenkins Pipeline 示例&#xff0c;用于執行自動化測試流程&#xff08;支持單元測試、集成測試、代碼質量掃描&#xff09;&#xff0c;包含多階段執行和測試結果處理&#xff1a; pipeline {agent anyenvironment {// 定義環境變量PROJECT_NAME "my-…

APP測試

一、APP測試范圍 功能測試性能測試&#xff1a;CPU、內存占用、啟動速度、流量、電量消耗、流暢度、穩定性專項測試&#xff1a;安裝卸載升級、push消息推送 、交叉事件測試 、用戶體驗測試 、兼容性測試 二、APP包發布方式及策略 分類&#xff1a; 內部發布渠道。如&#x…