應用篇02-鏡頭標定(上)

本節主要介紹相機的標定方法,包括其內、外參數的求解,以及如何使用HALCON標定助手實現標定。

計算機視覺——相機標定(Camera Calibration)_攝像機標定-CSDN博客

1. 原理

本節介紹與相機標定相關的理論知識,不一定全,可以參考相關的專業書籍。

1.1 為什么要進行標定

實際使用的相機鏡頭都是光學透鏡,只有通過光心的光線才是沿直線傳播的,而大部分的光線在通過透鏡后會發生折射,從而改變了傳播的角度。越靠近透鏡的邊緣,改變的角度也就越大,這會造成相機所成的像產生距離上的拉伸以及形狀的改變,這個現象稱為相機畸變

對相機進行標定操作其實就是通過一系列的計算校準后得到修正參數,通過這些參數修正后就可以得到與人眼看到的景象相同的圖像,也就是將三維景象轉換成去除畸變后的二維圖像無論是在機器視覺還是在圖像測量應用中,相機標定都是非常關鍵的環節,其標定的精度及算法的穩定性直接影響結果的準確性。因此,做好相機標定是進行后續工作及實驗的前提。

進行攝像機標定的目的主要是兩方面:一是求出相機的參數(包括內參數、外參數),二是畸變參數。下面圍繞著這兩個方面展開介紹。

1.2 相機模型

1.2.1 四大坐標系

  • 世界坐標系是一個全局坐標系,用于描述物體在真實世界中的位置。世界坐標系用 (X_w, Y_w, Z_w) 表示,獨立于相機,可以任意選擇原點和坐標軸的方向。
  • 相機坐標系 (Camera Coordinate System)**以相機的光學中心為原點,Z ZZ軸指向相機的正前方,X XX軸和Y YY軸分別指向相機的右側和下方,用于描述物體在相機視角下的位置。通常,相機坐標系用 ( X c , Y c , Z c ) (X_c, Y_c, Z_c)(X?c,Yc,Z c ) 表示。
  • 圖像坐標系 (Image Coordinate System)**是二維坐標系,用于描述物體在相機成像平面上的投影位置。通常,圖像坐標系用 ( x , y ) (x, y)(x,y)表示,圖像坐標系的原點通常位于成像平面的中心,x xx軸和y yy軸分別指向圖像的右側和下方。
  • 像素坐標系 (Pixel Coordinate System)**是二維坐標系,用于描述物體在數字圖像中的像素位置。通常,像素坐標系用 ( u , v ) (u, v)(u,v) 表示,即列數和行數。像素坐標系的原點通常位于圖像的左上角,u uu軸和v vv軸分別指向圖像的右側和下方。

在機器視覺領域中,為了確定空間物體表面某點的三維幾何位置與其投影圖像(二維)中對應點之間的關系,必須建立相機成像的幾何模型,這些幾何模型參數就是相機的內外參數

1. 3?相機畸變

常見的鏡頭畸變包括徑向畸變和切向畸變兩類。其中,大多數鏡頭都有徑向畸變,而切向畸變影響相對較小。

在正確的拍攝條件下,矩形體的像仍然是矩形。如果將矩形物體拍攝成四邊向外凸的桶形影像,則稱鏡頭具有負畸變或桶形畸變。相反,如果影像為四邊凹進,則稱鏡頭具有正畸變,或枕形畸變。

  • 桶形畸變是由于視場邊緣的放大率比中心部分低引起的,即縮小光圈也不能矯正;
  • 枕形畸變是由于視場邊緣部分的放大率比中心部分放大率高引起的,即傾斜角度大的光線的放大率比傾斜角度小的光線的放大率高。

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

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

相關文章

PG CTE 遞歸 SQL 翻譯為 達夢版本

文章目錄 PG SQLDM SQL總結 PG SQL with recursive result as (select res_id,phy_res_code,res_name from tbl_res where parent_res_id (select res_id from tbl_res where phy_res_code org96000#20211203155858) and res_type_id 1 union all select t1.res_id, t1.p…

C# Where 泛型約束

在C#中,Where關鍵字主要有兩種用途 1、在泛型約束中限制類型參數 2、在LINQ查詢中篩選數據 本文主要介紹where關鍵字在在泛型約束中的使用 泛型定義中的 where 子句指定對用作泛型類型、方法、委托或本地函數中類型參數的參數類型的約束。通過使用 where 關鍵字和…

《MySQL:MySQL表的約束-主鍵/復合主鍵/唯一鍵/外鍵》

表的約束:表中一定要有各種約束,通過約束,讓未來插入數據庫表中的數據是符合預期的。約束本質是通過技術手段,倒逼程序員插入正確的數據。即,站在mysql的視角,凡是插入進來的數據,都是符合數據約…

Qt 創建QWidget的界面庫(DLL)

【1】新建一個qt庫項目 【2】在項目目錄圖標上右擊,選擇Add New... 【3】選擇模版:Qt->Qt設計師界面類,選擇Widget,填寫界面類的名稱、.h .cpp .ui名稱 【4】創建C調用接口(默認是創建C調用接口) #ifnd…

汽車免拆診斷案例 | 2011款雪鐵龍世嘉車刮水器偶爾自動工作

故障現象 一輛2011款雪鐵龍世嘉車,搭載1.6 L 發動機,累計行駛里程約為19.8萬km。車主反映,該車刮水器偶爾會自動工作,且前照燈偶爾會自動點亮。 故障診斷 接車后試車發現,除了上述故障現象以外,當用遙控器…

【Linux】NAT、代理服務、內網穿透

NAT、代理服務、內網穿透 一. NAT1. NAT 技術2. NAT IP 轉換過程3. NAPT 技術4. NAT 技術的缺陷 二. 代理服務器1. 正向代理2. 反向代理3. NAT 和代理服務器 內網穿透內網打洞 一. NAT NAT(Network Address Translation,網絡地址轉換)技術&a…

MobaXterm連接Ubuntu(SSH)

1.查看Ubuntu ip 打開終端,使用指令 ifconfig 由圖可知ip地址 2.MobaXterm進行SSH連接 點擊session,然后點擊ssh,最后輸入ubuntu IP地址以及用戶名

Spring Boot系列之使用Arthas Tunnel Server 進行遠程調試實踐

Spring Boot系列之使用Arthas Tunnel Server 進行遠程調試實踐 前言 在開發和運維 Java 應用的過程中,遠程診斷和調試是一個不可或缺的需求。尤其是當生產環境出現問題時,能夠快速定位并解決這些問題至關重要。Arthas 是阿里巴巴開源的一款強大的 Java…

圖像預處理-添加水印

一.ROI切割 類似裁剪圖片,但是原理是基于Numpy數組的切片操作(ROI數組切片是會修改原圖數據的),也就是說這個“裁剪”不是為了保存“裁剪”部分,而是為了方便修改等處理。 import cv2 as cv import numpy as npimg cv.imread(../images/dem…

數據結構——八大排序算法

排序在生活中應用很多,對數據排序有按成績,商品價格,評論數量等標準來排序。 數據結構中有八大排序,插入、選擇、快速、歸并四類排序。 目錄 插入排序 直接插入排序 希爾排序 選擇排序 堆排序 冒泡排序 快速排序 hoare…

吃透LangChain(五):多模態輸入與自定義輸出

多模態數據輸入 這里我們演示如何將多模態輸入直接傳遞給模型。我們目前期望所有輸入都以與OpenAl 期望的格式相同的格式傳遞。對于支持多模態輸入的其他模型提供者,我們在類中添加了邏輯以轉換為預期格式。 在這個例子中,我們將要求模型描述一幅圖像。 …

【Rust 精進之路之第10篇-借用·規則】引用 (``, `mut`):安全、高效地訪問數據

系列: Rust 精進之路:構建可靠、高效軟件的底層邏輯 作者: 碼覺客 發布日期: 2025年4月20日 引言:所有權的“限制”與“變通”之道 在上一篇【所有權核心】中,我們揭示了 Rust 如何通過所有權規則和移動 (Move) 語義來保證內存安全,避免了垃圾回收器的同時,也防止了諸…

劍指Offer(數據結構與算法面試題精講)C++版——day16

劍指Offer(數據結構與算法面試題精講)C版——day16 題目一:序列化和反序列化二叉樹題目二:從根節點到葉節點的路徑數字之和題目三:向下的路徑節點值之和附錄:源碼gitee倉庫 題目一:序列化和反序…

OpenCV 模板與多個對象匹配方法詳解(繼OpenCV 模板匹配方法詳解)

文章目錄 前言1.導入庫2.圖片預處理3.輸出模板圖片的寬和高4.模板匹配5.獲取匹配結果中所有符合閾值的點的坐標5.1 threshold 0.9:5.2 loc np.where(res > threshold): 6.遍歷所有匹配點6.1 loc 的結構回顧6.2 loc[::-1] 的作用6.2.1 為什么需要反轉…

產品經理學習過程

一:掃盲篇(初始產品經理) 階段1:了解產品經理 了解產品經理是做什么的、產品經理的分類、產品經理在實際工作中都會接觸什么樣的崗位、以及產品經理在實際工作中具體要做什么事情。 二:準備篇 階段2:工…

【消息隊列RocketMQ】一、RocketMQ入門核心概念與架構解析

在當今互聯網技術飛速發展的時代,分布式系統的架構設計愈發復雜。消息隊列作為分布式系統中重要的組件,在解耦應用、異步處理、削峰填谷等方面發揮著關鍵作用。RocketMQ 作為一款高性能、高可靠的分布式消息中間件,被廣泛應用于各類互聯網場景…

從“鏈主”到“全鏈”:供應鏈數字化轉型的底層邏輯

1. 制造業與供應鏈數字化轉型的必然性 1.1. 核心概念與戰略重要性 制造業的數字化轉型,是利用新一代數字技術(如工業互聯網、人工智能、大數據、云計算、邊緣計算等)對制造業的整體價值鏈進行根本性重塑的過程。這不僅涉及技術的應用&#…

x-ui重新申請ssl證書失敗

由于某些需要我們重新申請ssl證書,x-ui自動化腳本不能強制更新,根據x-ui倉庫源碼: https://github.com/vaxilu/x-ui/blob/main/x-ui.sh 在申請ssl證書的地方稍作修改,得到,運行下面的腳本就可以重新申請ssl證書&#…

Java NIO Java 虛擬線程(微線程)與 Go 協程的運行原理不同 為何Go 能在低配機器上承接10萬 Websocket 協議連接

什么是Java NIO? Java NIO(New Input/Output) 是Java 1.4(2002年)引入的一種非阻塞、面向緩沖區的輸入輸出框架,旨在提升Java在高性能和高并發場景下的I/O處理能力。它相比傳統的 Java IO(java…

go環境安裝mac

下載go安裝包:https://golang.google.cn/dl/ 找到對應自己環境的版本下載。 注意有二進制的包,也有圖形界面安裝的包。圖形界面直接傻瓜式點就行了。 二進制的按照下面操作: 1、下載二進制包。 2、將下載的二進制包解壓至 /usr/local目錄…