用Matlab對單目相機參數的標定步驟(保姆級教程)

? ?前言? ?

? ? 在圖像測量及機器視覺應用中,為確定空間物體表面某點的三維幾何位置與其在圖像中對應點之間的相互關系,必須建立相機成像的幾何模型,這些幾何模型參數就是相機參數。
??在大多數條件下這些參數必須通過實驗與計算才能得到,這個求解參數的過程就稱之為相機標定。相機參數的標定是非常關鍵的環節,其標定結果的精度將直接影響相機工作產生結果的準確性。本文詳細介紹了利用Matlab中的單目相機標定工具來對單目相機的標定過程。

第一步:準備棋盤格并打印在A4紙上

? ? ? 在相機標定之前,需要進行圖像采集,采集對象是棋盤格,要打印在一張A4紙上。我采用了邊長為25mm大小的棋盤格。

3d38dc08a4834837acc4c6a6b9c74d4b.png

第二步:用相機采集棋盤格照片

? ? ? 首先將打印好的棋盤格照片貼在平整的白墻上,再將相機連接到電腦,打開相機,點擊切換相機按鈕,調出外接相機,對準棋盤格采集照片(50張左右),并保存到文件夾中。

942371ca06c84c55b7ea0280bcf53c47.jpeg

92bd4a1767d04f53a89af06fce18b84f.png

第三步:打開Matlab中的單目相機標定工具

? ? ? 雙擊打開Matlab,再點擊左上角的“APP”。

43dd63b875ca4b16b3f65f0074ee0066.png

? ? ? 再點開下拉箭頭找到“Camera Calibrator”并打開。

6c57f403f8774812bfa984192b6d9a57.png

ae69fdbb384f4340afcbbad678328964.png

第四步:導入拍攝的所有照片

3900aedfaf1046a68fef31fc3ea6504e.png

? ? ? 選擇存放照片的文件夾,全選導入。

47b63d36b61243f3832ce65dceab7852.png

? ? ? 選擇棋盤格小格寬度(根據你實際打印的來,我的是25mm)。

bf9ad01abc77471ca0cdaf2e8219b358.png

5468f2e39efe4b30898fd3c8be680a12.png

第五步:開始標定

? ? ? 點擊“Calibrate”,開始標定。

7d14858c44fb4b9899fe52c253bf5635.png

第六步:剔除誤差比較大的照片

? ? ? 我這里就刪除重投影誤差值在0.5以上的幾張圖片。

重投影誤差樹狀圖解析:(Reprojection Error)

縱軸(Mean Error in Pixels):
表示重投影誤差的平均值,單位為像素。
誤差越小,說明標定結果越精確。
橫軸(Images)
表示用于標定的每一張圖像編號。
藍色柱狀條:
每個柱狀條表示一張標定圖像的重投影誤差(均值)。
重投影誤差是指圖像上實際檢測到的角點位置與根據標定參數重新投影得到的角點位置之間的差距。
數值越小,說明該圖像對于標定的誤差越小,標定的精度越高。
虛線(Overall Mean Error):
圖中的虛線表示總體平均重投影誤差,標記為 0.39?pixels。虛線的位置表示所有圖像的重投影誤差的平均值。這是一個評估標定總體精度的重要指標。
圖中關鍵點分析
大多數圖像的誤差集中在 0.2 到 0.5 像素范圍內:這說明標定過程中,大多數圖像的重投影誤差較小,標定效果較為理想。
誤差大可能產生的原因:角點檢測受干擾、圖像拍攝角度問題、光照條件變化,或棋盤格在該圖像中存在畸變等。

第七步:導出數據

? ? ? 點擊綠色對號“Export Camera Parameters”進行導出。

? ? ? 然后選擇默認,點擊確定。

第八步:返回工作區查看數據

? ? ? 雙擊“Camera Params”,查看數據。

? ? ? 具體參數如下圖所示:

? ? 以上就是在Matlab中標定單目相機的步驟,后續還會補充完善,若有錯誤的地方,請在評論區留言斧正。

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

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

相關文章

【后端高階面經:架構篇】46、分布式架構:如何應對高并發的用戶請求

一、架構設計原則:構建可擴展的系統基石 在分布式系統中,高并發場景對架構設計提出了極高要求。 分層解耦與模塊化是應對復雜業務的核心策略,通過將系統劃分為客戶端、CDN/邊緣節點、API網關、微服務集群、緩存層和數據庫層等多個層次,實現各模塊的獨立演進與維護。 1.1 …

SQL每日一題(5)

前言:五更!五更琉璃!不對!是,五更佩可! 原始數據: new_hires reasonother_column1other_column2校園招聘信息 11社會招聘信息 22內部推薦信息 33獵頭推薦信息 44校園招聘信息 55社會招聘信息…

Kafka Kraft模式集群 + ssl

文章目錄 啟用集群資源規劃準備證書創建相關文件夾配置文件啟動各Kafka節點 故障轉移測試spring boot集成 啟用集群 配置集群時關鍵就是提前梳理好需要的網絡資源,完成對應server.properties文件的配置。在執行前先把這些梳理好,可以方便后面的配置&…

watchEffect

在處理復雜異步邏輯時,Vue 3 的 watchEffect 相比傳統的 watch 具有以下優勢: 1. 自動追蹤依賴 watchEffect 會自動收集其回調中使用的所有響應式依賴,無需手動指定監聽源: import { ref, watchEffect } from vue;const count …

Linux系統平均負載與top、uptime命令詳解

介紹 在Linux系統運維中,系統平均負載是一個重要的性能指標。通過 top和 uptime命令,可以實時監控系統的負載情況,幫助運維人員及時發現并解決系統性能問題。本文將詳細介紹Linux系統平均負載的概念及其計算方法,并深入解析 top和…

前端配置nginx代理

一、定義靜態文件的路徑的兩種方式 1. root 指令 (1)作用 指定文件系統的 基礎路徑,location 的 URI 會 追加到該路徑后 形成完整路徑。 (2)語法 location /uri/ {root /path/to/files; } (3&#xf…

語音識別技術在人工智能中的應用

姓名:成杰 學號:21021210653 學院:電子工程學院 【嵌牛導讀】 應用語音智能這項識別技術是為了使計算機可以聽懂人類的語言,并執行人類的某項操作。現階段這項技術已經成為人工智能領域的重點研究方向和實現人機語音交互的…

uniapp實現大視頻文件上傳-- 阿里云oss直傳方式 - app、H5、微信小程序

之前的項目文件上傳比較慢,使用預簽名方式上傳H5正常,微信小程序和app使用axios時出現了各種報錯,配置完后還是不行。所以換一種oss直傳方式。 找到一個 實現了的 參考:https://blog.csdn.net/qq_44860866/article/details/129670188

【Java學習筆記】抽象類

抽象類 引入關鍵字:abstract 應用場景:當子類中共有的部分 / 特性可以放到抽象類中 1. 通過子類的方法重寫實現不同的功能 2. 編寫一個方法把共有的部分放入其中,在該方法中調用抽象方法(動態綁定機制) 3. 便可以實…

EPT(Efficient Prompt Tuning)方法,旨在解決提示調優(Prompt Tuning)中效率與準確性平衡和跨任務一致性的問題

EPT(Efficient Prompt Tuning)方法,旨在解決提示調優(Prompt Tuning)中效率與準確性平衡和跨任務一致性的問題 一、核心原理:分解提示與多空間投影 1. 提示分解:用低秩矩陣壓縮長提示 傳統問題: 長提示(如100個token)精度高但訓練慢,短提示(如20個token)速度快但…

深入剖析Java中的偽共享:原理、檢測與解決方案

在高性能Java應用的開發中,尤其是多線程環境下,開發者往往會關注鎖競爭、線程調度等顯性問題,但有一個隱蔽的性能殺手——偽共享(False Sharing)?,卻容易被忽視。本文將通過原理分析、代碼案例與實戰工具&…

JMeter 教程:響應斷言

目錄 JMeter 教程:響應斷言的簡單介紹【輕松上手】 ? 什么是響應斷言? 📌 使用場景示例 🛠? 添加響應斷言步驟 1. 選中 HTTP 請求 → 右鍵 → Add → Assertions → Response Assertion 2. 設置斷言內容: ? …

11.11 TypedDict與Pydantic實戰:Python高效狀態管理秘籍

使用 TypedDict 和 Pydantic 管理狀態 關鍵詞:LangGraph 狀態管理, TypedDict 類型化字典, Pydantic 數據模型, 狀態持久化, 多輪對話設計 1. 狀態管理的核心挑戰 在復雜 AI Agent 系統中,狀態管理需要解決三個關鍵問題: #mermaid-svg-0sX3763L7VP2RvuX {font-family:&quo…

ThreadLocal線程本地變量在dubbo服務使用時候遇到的一個坑

我昨天遇到一個問題,就是我springboot項目里面有一個提供代辦服務審核的dubbo接口,這個接口給房源項目調用,但是碰到一個問題就是,房源項目每天凌晨5點會查詢滿足條件過期的數據,然后調用我這邊的代辦審核dubbo接口&am…

[Java實戰]Spring Boot整合達夢數據庫連接池配置(三十四)

[Java實戰]Spring Boot整合達夢數據庫連接池配置(三十四) 一、HikariCP連接池配置(默認) 1. 基礎配置(application.yml) spring:datasource:driver-class-name: dm.jdbc.driver.DmDriverurl: jdbc:dm://…

【MySQL】08.視圖

視圖就是一個由查詢到的內容定義的虛擬表。它和真實的表一樣,視圖包含一系列帶有名稱的列和行數據。視圖的數據變化會影響到基表,基表的數據變化也會影響到視圖。 1. 基本使用 mysql> select * from user; -------------------- | id | age | name …

4 通道1250MSPS‐16bit DAC 回放板

簡介 4 通道1250MSPS‐16bit DAC 回放板 是一款4 路轉換速率最高為1250MSPS 的DAC 回放板, DAC 位數16bit;板卡支持觸發輸出/觸發輸入;DAC 采樣時鐘源支持內部參考時 鐘、外部參考時鐘、外部采樣時鐘三種方式,可通過SPI 總線實現時…

C/C++---類型轉換運算符

在C中,類型轉換運算符(Type Conversion Operator)允許類對象在需要時自動轉換為其他類型。這是一種特殊的成員函數,能夠增強類的靈活性和交互性。 1. 基本語法 類型轉換運算符的聲明格式為: operator 目標類型() co…

大模型Agent

手撕 Agent 1、功能描述 設計一個 Agent,自動選擇使用以下工具回答用戶的問題: 查看目錄下的文件基于給定的文檔回答用戶問題查看與分析 Excel 文件撰寫文檔調用 Email 客戶端發郵件2、演示用例 實驗中使用三個文檔演示 Agent 的能力 ./data|__2023年8月-9月銷售記錄.xlsx…

超臨界機組協調控制系統建模項目開發筆記

超臨界機組協調控制系統建模項目開發筆記 項目概述 本項目基于兩篇論文的方法,對超臨界機組協調控制系統進行數據驅動建模。主要使用LSTMTransformer混合架構,實現對主蒸汽壓力(Pst)、分離器蒸汽焓值(hm)和機組負荷(Ne)的預測。同時,通過消…