不同像平面坐标系下的Brown畸变系数互转

不同像平面坐标系下Brown畸变系数转换

u , v u,v u,v为像素为单位的坐标,f为焦距,单位也是像素。

x , y x,y x,y为理想坐标。本文推导两种情况下的Brown畸变系数转换关系:

  1. 相同坐标系定义、不同的坐标单位(像素坐标与归一化坐标)的畸变系数关系
  2. 坐标系原点相同、y轴方向相反的坐标系之间畸变系数关系

像素坐标与归一化坐标的畸变系数的关系推导

像素为单位的畸变计算

使用像素坐标计算畸变值的公式为:

{ d u = u ( K 1 r 2 + K 2 r 4 + K 3 r 6 ) + P 1 ( r 2 + 2 u 2 ) + 2 P 2 u v d v = v ( K 1 r 2 + K 2 r 4 + K 3 r 6 ) + P 2 ( r 2 + 2 v 2 ) + 2 P 1 u v (A) \begin{cases} du = u(K_1 r^2+K_2 r^4+K_3 r^6)+P_1(r^2+2u^2)+2P_2 uv\\ dv = v(K_1 r^2+K_2 r^4+K_3 r^6)+P_2(r^2+2v^2)+2P_1 uv\\ \end{cases}\tag{A} {du=u(K1r2+K2r4+K3r6)+P1(r2+2u2)+2P2uvdv=v(K1r2+K2r4+K3r6)+P2(r2+2v2)+2P1uv(A)

计算机视觉的归一化坐标畸变计算

u , v u,v u,v为像素为单位的坐标,f为焦距,单位也是像素。计算机视觉使用归一化坐标:

{ x = u f y = v f (B) \begin{cases}x=\dfrac{u}{f}\\y=\dfrac{v}{f}\end{cases}\tag{B} x=fuy=fv(B)

计算畸变值的公式为:

{ d x = x ( k 1 r 2 + k 2 r 4 + k 3 r 6 ) + p 1 ( r 2 + 2 x 2 ) + 2 p 2 x y d y = y ( k 1 r 2 + k 2 r 4 + k 3 r 6 ) + p 2 ( r 2 + 2 y 2 ) + 2 p 1 x y (C) \begin{cases} dx=x(k_1 r^2+k_2 r^4+k_3 r^6)+p_1(r^2+2x^2)+2p_2 xy\\ dy=y(k_1 r^2+k_2 r^4+k_3 r^6)+p_2(r^2+2y^2)+2p_1 xy\\ \end{cases}\tag{C} {dx=x(k1r2+k2r4+k3r6)+p1(r2+2x2)+2p2xydy=y(k1r2+k2r4+k3r6)+p2(r2+2y2)+2p1xy(C)

推导过程

对比(A)(C)两个公式,将(C)式中的x,y按照(B)替换为u,v的表达式,得:
{ d u f = u f ( k 1 R 2 f 2 + k 2 R 4 f 4 + k 3 R 6 f 6 ) + p 1 ( R 2 f 2 + 2 u 2 f 2 ) + 2 p 2 u f v f d v f = v f ( k 1 R 2 f 2 + k 2 R 4 f 4 + k 3 R 6 f 6 ) + p 2 ( R 2 f 2 + 2 v 2 f 2 ) + 2 p 1 u f v f (D) \begin{cases} \dfrac{du}{f}=\dfrac{u}{f}(k_1 \dfrac{R^2}{f^2}+k_2 \dfrac{R^4}{f^4}+k_3 \dfrac{R^6}{f^6})+p_1(\dfrac{R^2}{f^2}+2\dfrac{u^2}{f^2})+2p_2 \dfrac{u}{f}\dfrac{v}{f}\\ \dfrac{dv}{f}=\dfrac{v}{f}(k_1 \dfrac{R^2}{f^2}+k_2 \dfrac{R^4}{f^4}+k_3 \dfrac{R^6}{f^6})+p_2(\dfrac{R^2}{f^2}+2\dfrac{v^2}{f^2})+2p_1 \dfrac{u}{f}\dfrac{v}{f}\\ \end{cases}\tag{D} fdu=fu(k1f2R2+k2f4R4+k3f6R6)+p1(f2R2+2f2u2)+2p2fufvfdv=fv(k1f2R2+k2f4R4+k3f6R6)+p2(f2R2+2f2v2)+2p1fufv(D)
其中, R 2 = u 2 + v 2 R^2=u^2+v^2 R2=u2+v2

整理得:
{ d u f = u f ( k 1 f 2 R 2 + k 2 f 4 R 4 + k 3 f 6 R 6 ) + p 1 f 2 ( R 2 + 2 u 2 ) + 2 p 2 f 2 u v d v f = v f ( k 1 f 2 R 2 + k 2 f 4 R 4 + k 3 f 6 R 6 ) + p 2 f 2 ( R 2 + 2 v 2 ) + 2 p 1 f 2 u v (E) \begin{cases} \dfrac{du}{f}=\dfrac{u}{f}( \dfrac{k_1}{f^2}R^2+ \dfrac{k_2}{f^4}R^4+ \dfrac{k_3}{f^6}R^6)+\dfrac{p_1}{f^2}(R^2+2u^2)+2 \dfrac{p_2}{f^2}uv\\ \dfrac{dv}{f}=\dfrac{v}{f}( \dfrac{k_1}{f^2}R^2+ \dfrac{k_2}{f^4}R^4+ \dfrac{k_3}{f^6}R^6)+\dfrac{p_2}{f^2}(R^2+2v^2)+2 \dfrac{p_1}{f^2}uv\\ \end{cases}\tag{E} fdu=fu(f2k1R2+f4k2R4+f6k3R6)+f2p1(R2+2u2)+2f2p2uvfdv=fv(f2k1R2+f4k2R4+f6k3R6)+f2p2(R2+2v2)+2f2p1uv(E)

(E)式两边乘f,得:
{ d u = u ( k 1 f 2 R 2 + k 2 f 4 R 4 + k 3 f 6 R 6 ) + p 1 f ( R 2 + 2 u 2 ) + 2 p 2 f u v d v = v ( k 1 f 2 R 2 + k 2 f 4 R 4 + k 3 f 6 R 6 ) + p 2 f ( R 2 + 2 v 2 ) + 2 p 1 f u v (F) \begin{cases} du=u( \dfrac{k_1}{f^2}R^2+ \dfrac{k_2}{f^4}R^4+ \dfrac{k_3}{f^6}R^6)+\dfrac{p_1}{f}(R^2+2u^2)+2 \dfrac{p_2}{f}uv\\ dv=v( \dfrac{k_1}{f^2}R^2+ \dfrac{k_2}{f^4}R^4+ \dfrac{k_3}{f^6}R^6)+\dfrac{p_2}{f}(R^2+2v^2)+2 \dfrac{p_1}{f}uv\\ \end{cases}\tag{F} du=u(f2k1R2+f4k2R4+f6k3R6)+fp1(R2+2u2)+2fp2uvdv=v(f2k1R2+f4k2R4+f6k3R6)+fp2(R2+2v2)+2fp1uv(F)

对比(C)(F)两式,即得:

K 1 = k 1 f 2 K 2 = k 2 f 4 K 3 = k 3 f 6 P 1 = p 1 f P 2 = p 2 f \begin{aligned}K_1 &= \dfrac{k_1}{f^2}\\ K_2 &= \dfrac{k_2}{f^4}\\ K_3 &= \dfrac{k_3}{f^6}\\ P_1 &= \dfrac{p_1}{f}\\ P_2 &= \dfrac{p_2}{f}\\\end{aligned} K1K2K3P1P2=f2k1=f4k2=f6k3=fp1=fp2

XRight-YUp 与 XRight-YDown的畸变系数的关系推导

摄影测量坐标系常用x轴向右y轴向上的像平面坐标系(XRight-YUp);计算机视觉常用x轴向右y轴向下的像平面坐标系(XRight-YDown)。
在这里插入图片描述

设XRightY-Down的图像坐标系中一点坐标为 ( x , y ) (x,y) (x,y),畸变改正数为 ( d x , d y ) (dx,dy) (dx,dy);在相同原点的XRight-YUp中坐标为 ( x , − y ) (x,-y) (x,y),畸变改正数为 ( d x , − d y ) (dx,-dy) (dx,dy)。它们计算畸变的公式形式相同,均符合(G)式:

{ d x = x ( k 1 r 2 + k 2 r 4 + k 3 r 6 ) + p 1 ( r 2 + 2 x 2 ) + 2 p 2 x y d y = y ( k 1 r 2 + k 2 r 4 + k 3 r 6 ) + p 2 ( r 2 + 2 y 2 ) + 2 p 1 x y (G) \begin{cases} dx=x(k_1 r^2+k_2 r^4+k_3 r^6)+p_1(r^2+2x^2)+2p_2 xy\\ dy=y(k_1 r^2+k_2 r^4+k_3 r^6)+p_2(r^2+2y^2)+2p_1 xy\\ \end{cases}\tag{G} {dx=x(k1r2+k2r4+k3r6)+p1(r2+2x2)+2p2xydy=y(k1r2+k2r4+k3r6)+p2(r2+2y2)+2p1xy(G)

设在XRightY-Down的图像坐标系中畸变参数为 k 1 , k 2 , k 3 , p 1 , p 2 k_1,k_2,k_3,p_1,p_2 k1,k2,k3,p1,p2;在XRightY-Up的图像坐标系中畸变参数为 k 1 ′ , k 2 ′ , k 3 ′ , p 1 ′ , p 2 ′ k'_1,k'_2,k'_3,p'_1,p'_2 k1,k2,k3,p1,p2,则我们有:

{ d x = x ( k 1 r 2 + k 2 r 4 + k 3 r 6 ) + p 1 ( r 2 + 2 x 2 ) + 2 p 2 x y = x ( k 1 ′ r 2 + k 2 ′ r 4 + k 3 ′ r 6 ) + p 1 ′ ( r 2 + 2 x 2 ) + 2 p 2 ′ x ( − y ) − d y = − ( y ( k 1 r 2 + k 2 r 4 + k 3 r 6 ) + p 2 ( r 2 + 2 y 2 ) + 2 p 1 x y ) = ( − y ) ( k 1 ′ r 2 + k 2 ′ r 4 + k 3 ′ r 6 ) + p 2 ′ ( r 2 + 2 ( − y ) 2 ) + 2 p 1 ′ x ( − y ) (H) \begin{cases} dx = x(k_1 r^2+k_2 r^4+k_3 r^6)+p_1(r^2+2x^2)+2p_2 xy=x(k'_1 r^2+k'_2 r^4+k'_3 r^6)+p'_1(r^2+2x^2)+2p'_2 x(-y)\\ -dy = -(y(k_1 r^2+k_2 r^4+k_3 r^6)+p_2(r^2+2y^2)+2p_1 xy)=(-y)(k'_1 r^2+k'_2 r^4+k'_3 r^6)+p'_2(r^2+2(-y)^2)+2p'_1 x(-y)\\ \end{cases}\tag{H} {dx=x(k1r2+k2r4+k3r6)+p1(r2+2x2)+2p2xy=x(k1r2+k2r4+k3r6)+p1(r2+2x2)+2p2x(y)dy=(y(k1r2+k2r4+k3r6)+p2(r2+2y2)+2p1xy)=(y)(k1r2+k2r4+k3r6)+p2(r2+2(y)2)+2p1x(y)(H)

整理得:

{ x ( k 1 r 2 + k 2 r 4 + k 3 r 6 ) + p 1 ( r 2 + 2 x 2 ) + 2 p 2 x y = x ( k 1 ′ r 2 + k 2 ′ r 4 + k 3 ′ r 6 ) + p 1 ′ ( r 2 + 2 x 2 ) − 2 p 2 ′ x y − y ( k 1 r 2 + k 2 r 4 + k 3 r 6 ) − p 2 ( r 2 + 2 y 2 ) − 2 p 1 x y = − y ( k 1 ′ r 2 + k 2 ′ r 4 + k 3 ′ r 6 ) + p 2 ′ ( r 2 + 2 y 2 ) − 2 p 1 ′ x y (I) \begin{cases} x(k_1 r^2+k_2 r^4+k_3 r^6)+p_1(r^2+2x^2)+2p_2 xy=x(k'_1 r^2+k'_2 r^4+k'_3 r^6)+p'_1(r^2+2x^2)-2p'_2 xy\\ -y(k_1 r^2+k_2 r^4+k_3 r^6)-p_2(r^2+2y^2)-2p_1 xy=-y(k'_1 r^2+k'_2 r^4+k'_3 r^6)+p'_2(r^2+2y^2)-2p'_1 xy\\ \end{cases}\tag{I} {x(k1r2+k2r4+k3r6)+p1(r2+2x2)+2p2xy=x(k1r2+k2r4+k3r6)+p1(r2+2x2)2p2xyy(k1r2+k2r4+k3r6)p2(r2+2y2)2p1xy=y(k1r2+k2r4+k3r6)+p2(r2+2y2)2p1xy(I)

于是可得:

k 1 ′ = k 1 k 2 ′ = k 2 k 3 ′ = k 3 p 1 ′ = p 1 p 2 ′ = − p 2 \begin{aligned}k'_1&=k_1\\ k'_2& = k_2\\ k'_3 &= k_3\\ p'_1& = p_1\\ p'_2 &= -p_2\\\end{aligned} k1k2k3p1p2=k1=k2=k3=p1=p2

即,这两个坐标系中的畸变参数互转时仅需要将 p 2 p_2 p2取相反数,其他畸变系数可通用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/604930.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

RocketMQ源码 事务消息 TransactionalMessage 源码分析

前言 原理:使用普通消息和订单事务无法保证一致的原因,本质上是由于普通消息无法像单机数据库事务一样,具备提交、回滚和统一协调的能力。 而基于 RocketMQ 的分布式事务消息功能,在普通消息基础上,支持二阶段的提交能…

像专家一样使用TypeScript映射类型

掌握TypeScript的映射类型,了解TypeScript内置的实用类型是如何工作的。 您是否使用过Partial、Required、Readonly和Pick实用程序类型? 你知道他们内部是怎么运作的吗? 如果您想彻底掌握它们并创建自己的实用程序类型,那么不要错过本文所涵盖的内容。…

LabVIEW开发自动读取指针式仪表测试系统

LabVIEW开发自动读取指针式仪表测试系统 在工业领域,尤其是煤矿、变电站和集气站等环境中,指针式仪表因其简单的结构、抗干扰能力强以及能适应高温高压等恶劣环境条件而被广泛应用于设备运行状态监视。然而,传统的人工读表方式不仅成本高昂&…

【AIGC工具】我找到了使用大模型问答的最短路径!

大家好,我是豆小匠~ 好久没介绍提高效率的工具啦,这次来介绍一个UTools的骚操作,可以极速打开LLM进行提问! 完成后的效果是: 快捷键调出输入框;2. 输入问题;3. 选择模型;4. 回车提…

IDEA 中搭建 Spring Boot Maven 多模块项目 (父SpringBoot+子Maven)

第1步:新建一个SpringBoot 项目 作为 父工程 [Ref] 新建一个SpringBoot项目 删除无用的 .mvn 目录、 src 目录、 mvnw 及 mvnw.cmd 文件,最终只留 .gitignore 和 pom.xml 第2步:创建 子maven模块 第3步:整理 父 pom 文件 ① …

【VTKExamples::Visualization】第一期 Arbitrary3DCursor

很高兴在雪易的CSDN遇见你 VTK技术爱好者 QQ:870202403 前言 本文分享Example中Visualization模块中的Arbitrary3DCursor样例,主要解析vtkProbefileter,希望对各位小伙伴有所帮助! 感谢各位小伙伴的点赞关注,小易会…

【Docker基础二】Docker安装Mysql8

下载镜像 安装mysql(版本:8.0.35) # 拉取镜像 docker pull mysql:8.0.35 # 查看镜像是否已经下载 docker images 创建挂载目录 # 宿主机上创建挂载目录 (可以不创建,docker run -v配置了挂载目录,docker会自动…

Priors in Deep Image Restoration and Enhancement: A Survey

深度图像恢复和增强中的先验:综述 论文链接:https://arxiv.org/abs/2206.02070 项目链接:https://github.com/VLIS2022/Awesome-Image-Prior (Preprint. Under review) Abstract 图像恢复和增强是通过消除诸如噪声、模糊和分辨率退化等退化…

【python入门】day21:向文件输出“奋斗成就更好的你”、输出北京的天气预报

向文件输出“奋斗成就更好的你” #向文件输出‘奋斗成就更好的你’ 第一种方式:使用print方式进行输出(输出目的地是文件) fpopen(e:/text.txt,w)#w只写模式,也可以用a读写模式 print(奋斗成就更好的你,filefp) fp.close() 第二种…

python统计分析——箱线图(plt.boxplot)

参考资料:用python动手学统计学 使用matplotlib.pyplot.boxplot()函数绘制箱线图 import numpy as np import pandas as pd from matplotlib import pyplot as pltdata_set1np.array([2,3,3,4,4,4,4,5,5,6]) data_set2np.array([[2,3,3,4,4,4,4,5,5,6],[5,6,6,7,7…

Linux程序、进程和计划任务

目录 一.程序和进程 1.程序的概念 2.进程的概念 3.线程的概念 4.单线程与多线程 5.进程的状态 二.查看进程信息相关命令: 1.ps:查看静态进程信息状态 2.top:查看动态进程排名信息 3.pgrep:查看指定进程 4.pstree&#…

docker 安装elasticsearch、kibana、cerebro、logstash

安装步骤 第一步安装 docker 第二步 拉取elasticsearch、kibana、cerebro、logstash 镜像 docker pull docker.elastic.co/elasticsearch/elasticsearch:7.10.2 docker pull docker.elastic.co/kibana/kibana:7.10.2 docker pull lmenezes/cerebro:latest docker pull l…

Ps:混合颜色带 - 应用篇

混合颜色带 Blend If是基于亮度(灰色)或颜色通道的特定范围来显示或隐藏图层的特定区域。 当前图层 Current Layer,可根据当前图层的亮度值来隐藏该图层中的像素。 下一图层 Underlying Layer,可根据下方所有图层的复合图像的亮度…

单向可控硅充电电路图

单向可控硅工作原理 单向可控硅有阳极A、阴极K、控制极G三个电极,由四层半导体PNPN构成。单向可控硅有三个PN结,其内部结构与等效电路符号如图4-10所示。单相可控硅可等效看成一个PNP型三极管Vl和一个NPN型三极管V2组合而成,Vl基极和V2集电极…

电子学会C/C++编程等级考试2023年12月(三级)真题解析

C/C++编程(1~8级)全部真题・点这里 第1题:因子问题 任给两个正整数N、M,求一个最小的正整数a,使得a和(M-a)都是N的因子。 时间限制:10000 内存限制:65536 输入 包括两个整数N、M。N不超过1,000,000。 输出 输出一个整数a,表示结果。如果某个案例中满足条件的正整数不存…

MSCKF+OpenVins梳理

reference: openvins学习中的问题https://zhuanlan.zhihu.com/p/355319559 OpenVins代码梳理https://www.zhihu.com/people/anson2004110/posts OpenVINS能观一致性分析和FEJhttps://zhuanlan.zhihu.com/p/101478814 MSCKF那些事https://zhuanlan.zhihu.com/p/76894…

力扣labuladong一刷day54天前缀树

力扣labuladong一刷day54天前缀树 文章目录 力扣labuladong一刷day54天前缀树一、208. 实现 Trie (前缀树)二、648. 单词替换三、211. 添加与搜索单词 - 数据结构设计四、1804. 实现 Trie (前缀树) II五、677. 键值映射 一、208. 实现 Trie (前缀树) 题…

一键了解获取网页requests方式

目录 一、爬虫原理: 二、安装: 测试: 三、文件的操作 方式一 方式二: 方式三 四、认识User-Agent 4.1、为什么用User-Agent: 步骤: 五、请求方式 5.1、get 5.2、post 六、爬出有中国关键字页面案例 一、爬…

win10下vscode+cmake编译C代码操作详解

0 工具准备 1.Visual Studio Code 1.85.1 2.cmake 3.24.01 前言 当我们只有一个.c文件时直接使用vscodeCode Runner插件即可完成编译,如果我们的工程很复杂包含多个.c文件时建议使用cmake来生成对应的make,指导编译器完成编译,否则会提示各…

强化学习的数学原理学习笔记 - 基于模型(Model-based)

文章目录 概览:RL方法分类基于模型(Model-Based)值迭代(Value Iteration)🟦策略迭代(Policy Iteration)🟡截断策略迭代(Truncated Policy Iteration&#xff…