不同像平面坐标系下的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取相反数,其他畸变系数可通用。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

JavaWeb——后端案例

五、案例 1. 开发规范—Restful REST(Representational State Transfer),表述性状态转换,是一种软件架构风格 注: REST是风格,是约定方式,不是规定,可以打破描述模块的功能通常使…

chatglm部署问题

问题: ModuleNotFoundError: No module named ‘transformers_modules.’ 解决方法: 卸载重装 pip uninstall transformerspip install transformers -i https://mirror.baidu.com/pypi/simple

java内存屏障

参考:https://blog.csdn.net/weixin_73077810/article/details/132804522 内存屏障主要用于解决线程的可见性、有序性问题 代码案例: ReentrantLock保证可见性的原理 在 lock.lock() 和 lock.unlock() 时,都会操作 AbstractQueuedSy…

Linux命令入门及ls命令

由于大家第一次接触到Linux命令,故此篇会详细讲述什么是命令,什么又是命令行?Linux命令的基础结构,什么是工作目录,什么又是HOME目录?并且带大家熟悉ls命令的基础使用。 1.命令和命令行 命令行&#xff1a…

mybatisPlus CodeGenerator 代码生成

在 test 目录下新建 CodeGenerator 类,用于 mybatis-plus 自动生成 java 代码 package com.edward;import com.baomidou.mybatisplus.generator.FastAutoGenerator; import com.baomidou.mybatisplus.generator.config.OutputFile; import com.baomidou.mybatisplu…

Git 实战指南:常用指令精要手册(持续更新)

👑专栏内容:Git⛪个人主页:子夜的星的主页💕座右铭:前路未远,步履不停 目录 一、Git 安装过程1、Windows 下安装2、Cent os 下安装3、Ubuntu 下安装 二、配置本地仓库1、 初始化 Git 仓库2、配置 name 和 e…

数字系统课程设计与VHDL报告

获“优”,含实验结果视频、代码、报告,99.99%原创,配置环境太复杂不包跑通,要的私信。

听GPT 讲Rust源代码--compiler(30)

File: rust/compiler/rustc_const_eval/src/transform/promote_consts.rs 在Rust的编译器源代码中,rust/compiler/rustc_const_eval/src/transform/promote_consts.rs文件的作用是执行常量传播和优化的转换过程。 该文件中的PromoteTemps结构体是一个转换器&#xf…

【教学类-45-02】X-Y之间的三连减题(a-b-c=)

作品展示: 背景需求: 【教学类-45-01】X-Y之间的三连加题(abc)-CSDN博客文章浏览阅读5次。【教学类-45-01】X-Y之间的三连加题(abc)https://blog.csdn.net/reasonsummer/article/details/135436915 有了三连加怎么能没有三连减,修改参数&am…

SpringIOC之support模块FileSystemXmlApplicationContext

博主介绍:✌全网粉丝5W,全栈开发工程师,从事多年软件开发,在大厂呆过。持有软件中级、六级等证书。可提供微服务项目搭建与毕业项目实战,博主也曾写过优秀论文,查重率极低,在这方面有丰富的经验…

应用OpenCV绘制箭头

绘制箭头函数 方法:函数cv2.arrowedLine( ) 语法格式:cv2.arrowedLine(img, pt1, pt2, color[, thickness[, line_type[, shift[, tipLength]]]]) 参数说明: img:要画的直线所在的图像,也称为画布。。 pt1&#x…

BERT(从理论到实践): Bidirectional Encoder Representations from Transformers【1】

预训练模型:A pre-trained model is a saved network that was previously trained on a large dataset, typically on a large-scale image-classification task. You either use the pretrained model as is or use transfer learning to customize this model to a given t…

查找的数据结构实验报告(哈希表)

目录 一、实验目的: 二、实验内容(实验题目与说明) 三、算法设计(核心代码或全部代码) 四、运行与测试(测试数据和实验结果分析) 五、总结与心得 一、实验目的: (1)理解查找表…

windows 查看所有端口占用情况

winR,调出cmd窗口: 输入命令 netstat -ano 内容太多,显示不全,怎么办? 输入下面命令 netstat -ano > d:\1.log 在d盘根目录下就产生了 输出文件 打开可以看到如下内容 活动连接协议 本地地址 外部地址 状…

小家电type-c接口PD诱骗

小家电Type-C接口PD诱骗:未来充电的便捷与安全 随着科技的不断发展,Type-C接口已经成为了许多小家电产品的标配。而PD(Power Delivery)诱骗技术,作为一种新兴的充电技术,更是为小家电产品的充电带来了前所…

密码学入门 古老的围栏密码技术

1、简述 由于隐私和安全的重要性不断增加,已经开发了多种加密方法和技术来保护我们的敏感数据。随着时间的推移而演变,从经典密码学发展到现代密码学。 在本文中,我们将了解一种被称为围栏密码技术的技术,涵盖其加密和解密过程及其…

【IC设计】移位寄存器

目录 理论讲解背景介绍什么是移位寄存器按工作模式分类verilog语法注意事项 设计实例循环移位寄存器算术双向移位寄存器5位线性反馈移位寄存器伪随机码发生器3位线性反馈移位寄存器32位线性反馈移位寄存器串行移位寄存器(打4拍)双向移位寄存器&#xff1…

Java研学-web操作crud

一 思路 1 组件 页面显示:JSP   接受用户请求:Servlet   和数据库交互:MyBatis 2 基础准备 ① 创建 web 项目,导入需要依赖的 jar 包,放入 web/WEB-INF/lib目录中 ② 创建数据库表 CREATE TABLE employee( id bigint(11)…

八大算法排序@归并排序(C语言版本)

目录 归并排序概念算法思想第一步第二步第三步 算法步骤代码实现代码1代码优化 时间复杂度空间复杂度特性总结 归并排序 概念 归并排序(Merge Sort)是一种基于分治策略的经典排序算法。它的基本思想是将待排序的数组划分成两个子数组,分别对…