六、張正友標定法小結

六、張正友標定法小結

? ? ? ? ? 這一博文,是玉米后補上的。因為覺得前面用了三篇博文來描述張氏標定法,略顯散亂。在這里總結一下,使條理清晰一點。另外關于張氏標定所得參數也還有兩點需要澄清。下面這個總結,其實也是在“A Flexible New Technique forCamera Calibration”中出現的。

一、張氏標定的過程:

? ? ? ?1.??????打印一張棋盤格,把它貼在一個平面上,作為標定物。

? ? ? ?2.??????通過調整標定物或攝像機的方向,為標定物拍攝一些不同方向的照片。

? ? ? ?3.??????從照片中提取特征點(如角點)。

? ? ? ?4.??????估算理想無畸變的情況下,五個內參和所有外參。

? ? ? ?5.??????應用最小二乘法估算。實際存在徑向畸變下的畸變系數。

? ? ? ?6.??????極大似然法,優化估計,提升估計精度。

? ? ? ? ?通過這樣的過程,我們就獲得了具有高估計精度的五個內參,三個外參和兩個畸變系數。利用這些信息,我們可以進行畸變矯正、圖像校正和最終的三維信息恢復。

?

二、以下是對于張氏標定求得的內參,需要注意的一點:

? ? ? ? ?通過張氏標定,我們并不能得到:焦距(f)和像素的物理尺寸(sx,sy)兩個參數。因為我們在求解內參陣A時,求解出的是α和β。

α=f/ sx,β= f/ sy 。分別代表焦距長度上,x軸和y軸像素的個數。

? ? ? ? 雖然,沒有求得焦距,但這并不影響,我們在三維坐標恢復時,進行三角運算。因為彼時,我們的計算中用到的也是α和β。

?

?????? 大家可能會有疑問,既然我們無法得到焦距(f)和像素的物理尺寸(sx,sy)兩個參數。那么在opencv中,調用的cvCalibrateCamera2時返回的參數中是包含焦距(f)的。Opencv的這個函數也是用了張氏標定法。為什么可以得到f呢?

?????? 答案是這條opencv函數對內參陣做了簡化,其認為γ=0即像素的物理尺寸(sx,sy)兩個參數相等。然后統一約掉物理尺寸s。得到的B陣如下:


? ? ? ?這樣我們就可以解出f了。

?????? 張氏標定的精確度可達到0.5個像素,這樣的指標已經可以滿足絕大多數的應用了。所以如此簡單的方法,得到了這么高的精度。這樣的方法是值得人們膜拜的。在此,在次向張正友教授致敬!

?

? ? ? ?在此,玉米又對張氏標定法進行了一個總結。張氏標定的原理分析就到此為止了。但是它的作用還會延續到下面兩篇博文中。

? ? ? ?玉米才疏學淺,文中如有紕漏,請大家批評指正。

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

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

相關文章

SqlServer圖形數據庫初體驗

SQL Server2017新增了一個新功能叫做圖形數據庫。圖形指的拓撲圖形,是一些Node表和Edge表的合集,Node對應關系數據庫中的實體,比如一個人、一個崗位等,Edge表指示Node之前的關系,比如張三在經理崗位。圖形表比較適合用…

HALCON示例程序dem_trees.hdev提取樹

HALCON示例程序dem_trees.hdev提取樹 示例程序源碼(加注釋) 關于顯示類函數解釋 dev_close_window () read_image (Mreut, ‘mreut_y’) read_image (MreutDem, ‘mreut_dgm_2.0’) get_image_size (Mreut, Width, Height) dev_open_window (0, 0, Wid…

Oracle CASE WHEN 用法介紹

1. CASE WHEN 表達式有兩種形式 --簡單Case函數 CASE sex WHEN 1 THEN 男 WHEN 2 THEN 女 ELSE 其他 END --Case搜索函數 CASEWHEN sex 1 THEN 男 WHEN sex 2 THEN 女 ELSE 其他 END 2. CASE WHEN 在語句中不同位置的用法 2.1 SELECT CASE WHEN 用法 SELECT grad…

Golang 處理 Json(二):解碼

golang 編碼 json 還比較簡單,而解析 json 則非常蛋疼。不像 PHP 一句 json_decode() 就能搞定。之前項目開發中,為了兼容不同客戶端的需求,請求的 content-type 可以是 json,也可以是 www-x-urlencode。然后某天前端希望某個后端…

五、畸變矯正—讓世界不在扭曲

五、畸變矯正—讓世界不在扭曲 這篇博文所要講述的內容,是標定的主要用途之一:矯正攝像機的畸變。對于圖像畸變矯正的方法,張正友教授也在其大作“A Flexible New Technique forCamera Calibration”中給出。 玉米在這里先為大家介紹一下&…

第二階段個人沖刺08

昨天做了什么? 解決新建項目時會遇到“Your android sdk is out of date or is missing templates”的問題,,實現學生交流區,只有學生和管理員有權查看,教師無權查看的功能 今天要做什么? 實現學生交流區&a…

HALCON示例程序distance_transform.hdev通過distance_transform檢測線的缺陷

HALCON示例程序distance_transform.hdev通過distance_transform檢測線的缺陷 示例程序源碼(加注釋) 關于顯示類函數解釋 dev_close_window () dev_open_window (0, 0, 400, 400, ‘black’, WindowHandle)通過一系列的坐標點生成多邊形像素輪廓 gen_re…

java面試-Java并發編程(二)——重排序

當我們寫一個單線程程序時,總以為計算機會一行行地運行代碼,然而事實并非如此。 什么是重排序? 重排序指的是編譯器、處理器在不改變程序執行結果的前提下,重新排列指令的執行順序,以達到最佳的運行效率。 重排序分類 …

《MySQL必知必會》[01] 基本查詢

《MySQL必知必會》(點擊查看詳情)1、寫在前面的話這本書是一本MySQL的經典入門書籍,小小的一本,也受到眾多網友推薦。之前自己學習的時候是啃的清華大學出版社的計算機系列教材《數據庫系統概論》,基礎也算是半罐水&am…

(七)立體標定與立體校正 【計算機視覺學習筆記--雙目視覺幾何框架系列】

七、立體標定與立體校正 這篇博文中,讓玉米和大家一起了解一下,張氏標定是怎樣過渡到立體標定的?在這里主要以雙目立體視覺進行分析。對于雙目立體視覺,我們有兩個攝像頭。它們就像人的一雙眼睛一樣,從不同的方向看世界…

HALCON示例程序edge_segments.hdev提取連續的邊緣段

HALCON示例程序edge_segments.hdev提取連續的邊緣段 示例程序源碼(加注釋) 關于顯示類函數解釋 dev_update_off () dev_close_window () read_image (Image, ‘mreut’) get_image_size (Image, Width, Height) dev_open_window_fit_image (Image, 0, 0…

讓 jQuery UI draggable 適配移動端

背景: 在移動端,本人要實現對某個元素的拖動,想到使用 jQuery UI 的 draggable 功能。但是發現此插件的拖動只支持PC端,不支持移動端。 原因: 原始的 jQuery UI 里,都是mousedown、mousemove、mouseup來描述…

LAMP(7限定某個目錄禁止解析php、 限制user_agent、 PHP相關配置、PHP擴展模塊

限定某個目錄禁止解析php防止***上傳一個目錄文件php&#xff0c;網站會從而解析php,對我們的網站有很大的危險。因此&#xff0c;我們需要在能上傳文件的目錄直接禁止解析PHP代碼禁止步驟1.編輯虛擬主機配置文件&#xff1a;增添內容核心配置文件內容<Directory /data/wwwr…

編譯器的功能是什么

1、編譯器就是將“一種語言&#xff08;通常為高級語言&#xff09;”翻譯為“另一種語言&#xff08;通常為低級語言&#xff09;”的程序。一個現代編譯器的主要工作流程&#xff1a;源代碼 (source code) → 預處理器(preprocessor) → 編譯器 (compiler) → 目標代碼 (obje…

八、走向三維

八、走向三維 我們前面花了七篇博文做鋪墊&#xff0c;我們所做的一切努力都是為了最后的這一擊——立體成像。因為玉米的這個系列文章是對雙目視覺幾何框架的總結。此處跳過匹配&#xff0c;假設左右圖像點的完美匹配的。只看在幾何上&#xff0c;三維坐標是如何被還原的。相對…

通用連接池項目開啟

通用連接池項目開啟 待完善......轉載于:https://www.cnblogs.com/aresyl/p/5552092.html

HALCON示例程序fin.hdev通過形態學檢測缺陷

HALCON示例程序fin.hdev通過形態學檢測缺陷 示例程序源碼&#xff08;加注釋&#xff09; 關于顯示類函數解釋 dev_update_window (‘off’) read_image (Fins, ‘fin’ [1:3]) get_image_size (Fins, Width, Height) dev_close_window () dev_open_window (0, 0, Width[0],…

FEZ前端模塊化工程開發框架

FEZ FEZ 是面向前端模塊化工程的開發框架。主要目的是統一前端開發模式和項目開發結構&#xff0c;自動化前端工作流&#xff0c;提高開發效率和開發質量。使用持續集成等軟件工程的架構模式&#xff0c;集成眾多業界先進的解決方案&#xff0c;讓研發人員更專注于業務邏輯的實…

棧內存和堆內存

堆和棧這兩個字我們已經接觸多很多次&#xff0c;那么具體是什么存在棧中什么存在堆中呢&#xff1f;就拿JavaScript中的變量來說&#xff1a; 首先JavaScript中的變量分為基本類型和引用類型。 基本類型就是保存在棧內存中的簡單數據段&#xff0c;而引用類型指的是那些保存在…

L~M方法

L~M方法&#xff1a; L~M&#xff08;Levenberg-Marquardt&#xff09;方法有些讓人摸不清頭腦。玉米覺得L~M讓人困擾的主要原因有兩點&#xff1a;一是L~M從何而來、二是L~M怎么樣用&#xff1f;因為玉米也不是研究最優化理論的&#xff0c;所以玉米在這里用較為通俗的觀點&a…