【机器视觉1】坐标系定义

news2024/11/25 13:37:04

坐标系定义

  • 1. 图像坐标系
  • 2. 摄像机坐标系
  • 3. 世界坐标系
  • 4. 三种坐标系间的转换
    • 4.1 摄像机坐标系与无畸变图像坐标系之间的变换
    • 4.2 世界坐标系与摄像机坐标系之间的变换
    • 4.3 世界坐标系与无畸变图像坐标系之间的变换

1. 图像坐标系

在这里插入图片描述
数字图像坐标系 O 0 − u v O_0-uv O0uv,每一像素 ( u , v ) (u,v) (u,v)是该像素在图像数组中的列数和行数
物理图像坐标系 O − x y O-xy Oxy,每一像平面坐标 ( x , y ) (x,y) (x,y)是真实的物理尺寸
若每个像素在 x x x轴和 y y y轴方向的物理尺寸为 d x d_{x} dx d x d_{x} dx ,则任意像素在两坐标系下关系: [ u v 1 ] = [ 1 d x 0 u 0 0 1 d y v 0 0 0 1 ] [ x y 1 ] \begin{bmatrix}u\\ v\\ 1\end{bmatrix}=\begin{bmatrix}\frac{1}{d_x}&0&u_0\\ 0&\frac{1}{d_y}&v_0\\ 0&0&1\\ \end{bmatrix}\begin{bmatrix}x\\ y\\ 1\end{bmatrix} uv1 = dx1000dy10u0v01 xy1

2. 摄像机坐标系

摄像机坐标系(相机坐标系) O c − X c Y c Z c O_c-X_cY_cZ_c OcXcYcZc:由摄像机光心 O c O_c Oc、轴 X c X_c Xc、轴 Y c Y_c Yc、光轴 Z c Z_c Zc 组成的直角坐标系称为摄像机坐标系。

3. 世界坐标系

世界坐标系(全局坐标系) O w − X w Y w Z w O_w-X_wY_wZ_w OwXwYwZw:为了选择一个基准坐标系来描述摄像机的位置,并用它描述环境中任何物体的位置,由 O w O_w Ow、轴 X w X_w Xw、轴 Y w Y_w Yw 、轴 Z w Z_w Zw 组成。
摄像机坐标系与世界坐标系的关系如下图所示:
在这里插入图片描述

4. 三种坐标系间的转换

4.1 摄像机坐标系与无畸变图像坐标系之间的变换

( f x , f y ) (f_x,f_y) (fx,fy)表示摄像机焦距,即三维空间中的一点经摄像机成像后,所投影到图像平面上的坐标在 X ,Y 方向上的缩放比例不一样。由小孔成像原理得透视投影变换为如下形式: [ u i v i 1 ] = [ f x d x z c 0 u 0 0 0 f y d y z c v 0 0 0 0 1 z c 0 ] [ x c v c v c 1 ] = M 1 x ~ c \begin{bmatrix}u_i\\v_i\\1\end{bmatrix}=\begin{bmatrix}\frac{f_x}{d_xz_c}&0&u_0&0\\0&\frac{f_y}{d_yz_c}&v_0&0\\0&0&\frac{1}{z_c}&0\end{bmatrix}\begin{bmatrix}x_c\\v_c\\v_c\\1\end{bmatrix}=M_1\tilde{x}_c uivi1 = dxzcfx000dyzcfy0u0v0zc1000 xcvcvc1 =M1x~c

4.2 世界坐标系与摄像机坐标系之间的变换

x ~ c = [ x c y c z c 1 ] = [ R p 0 τ 1 ] [ x w y w z w 1 ] = M 2 x ~ w x ~ w = M 2 − 1 x ~ c \begin{gathered} {\tilde{x}}_{c} ={\left[\begin{array}{l}{x_{c}}\\ {y_{c}}\\ {z_{c}}\\ {1}\end{array}\right]}={\left[\begin{array}{l l}{R}&{\boldsymbol{p}}\\ {\boldsymbol{0}}^{\tau}&{1}\end{array}\right]}{\left[\begin{array}{l}{x_{w}}\\ {y_{w}}\\ {z_{w}}\\ {1}\end{array}\right]}=M_{2}{\tilde{x}}_{w} \\ {\tilde{x}}_{_w}={M_{2}}^{-1}{\tilde{x}}_{c} \end{gathered} x~c= xcyczc1 =[R0τp1] xwywzw1 =M2x~wx~w=M21x~c

4.3 世界坐标系与无畸变图像坐标系之间的变换

[ u i v i 1 ] = [ f x d x z c 0 u 0 0 0 f y d y z c v 0 0 0 0 1 z c 0 ] [ R p 0 T 1 ] [ x w y w z w 1 ] = M 1 M 2 x ~ w = M x ~ w \begin{bmatrix}u_i\\v_i\\1\end{bmatrix}=\begin{bmatrix}\frac{f_x}{d_xz_c}&0&u_0&0\\0&\frac{f_y}{d_yz_c}&v_0&0\\0&0&\frac{1}{z_c}&0\end{bmatrix}\begin{bmatrix}R&\boldsymbol{p}\\\boldsymbol{0}^T&1\end{bmatrix}\left[\begin{array}{c}x_w\\ y_w\\ z_w\\ 1\end{array}\right]=M_1M_2\tilde{x}_w=M\tilde{x}_w uivi1 = dxzcfx000dyzcfy0u0v0zc1000 [R0Tp1] xwywzw1 =M1M2x~w=Mx~w

M 1 M_1 M1为内参, M 2 M_2 M2为外参, M M M为投影矩阵,表征二维图像坐标与三维世界坐标间的基本关系。

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

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

相关文章

【差分+操作】C. Helping the Nature

Problem - 1700C - Codeforces 题意: 思路: 一开始手玩了一下 如果不是高低高的形式,那么一定不能通过操作3把全部元素变成0 因此就是先把所有元素变成高低高的形式 但是低在什么地方不确定 因此考虑枚举中间低谷位置,O(1)计…

【多微电网】基于粒子群优化算法的面向配电网的多微电网协调运行与优化(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

软件测试岗,4轮成功拿下字节 Offer,面试题复盘(附答案)

一共经历了四轮面试:技术4面+HR面。 特整理出所涉及的全部知识点,并复盘了完整面试题及答案,分享给大家,希望能够帮到一些计划面试字节的朋友。 一、测试基础理论类 怎么编写案例?软件测试的两种方法测试结束的标准…

allegro查看板子元器件的pin脚总数

怎么在ALLEGRO里统计焊盘和包括芯片pin和阻容的pad? 板子要拿出去布,需要根据焊盘计费? 方法一: 在find里面只勾选pin,然后鼠标左键,选择全部的pin 再选择菜单Display–element,如下图&#x…

Vivado综合属性系列之三 RAM_STYLE

目录 一、前言 二、RAM_STYLE ​ ​2.1 工程代码 ​ ​2.2 参考资料 一、前言 ​ ​RAM英文全称为Random Access Memory,随机存取存储器,可以实现数据的快速随机读写,RAM可直接verilog代码编写,也可调用IP核。 二、RAM…

Nginx 安装配置

Nginx("engine x")是一款是由俄罗斯的程序设计师Igor Sysoev所开发高性能的 Web和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器。在高连接并发的情况下,Nginx是Apache服务器不错的替代品。 Nginx 安装 系统平台:CentOS …

Java-Thread知识点汇总

什么是线程 记得小时候的电脑老是很卡,打开一个浏览器、游戏啥的老是卡死,关又关不掉,然后就会打开任务管理器,强制关闭它 我们可以看到,这个叫“进程”,简单理解一下,进程就是由(一个或多个&am…

入河排污口设置论证报告书如何编制?入河排污口水质影响预测方法有哪些

随着水资源开发利用量不断增大,全国废污水排放量与日俱增,部分河段已远远超出水域纳污能力。近年来,部分沿岸入河排污口设置不合理,超标排污、未经同意私设排污口等问题逐步显现,已威胁到供水安全、水环境安全和水生态安全&#x…

Bootstrap开发之——Bootstrap简介(01)

一 概述 Bootstrap概念学习前需要具备知识查阅Bootstrap文档Bootstrap各版本有什么不同 二 Bootstrap概念 Bootstrap是一个使用HTML、CSS和JavaScript框架的前端开发框架Bootstrap 是全球最受欢迎的前端框架,用于构建响应式、移动设备优先的网站简洁、直观、强悍的…

Linux-基础指令-3

时间相关的指令 date显示 date 指定格式显示时间: date %Y:%m:%d 例子: 而上述中的 %Y %m %d 等等这些中间可以用很多的符号来分割, 如:" - " " _ " " : " 等等这些都是可以的,但是…

5月份了,不会还有人没找到工作吧.....

前两天跟朋友感慨,去年的铜九铁十、裁员、疫情导致好多人都没拿到offer!现在都已经5月了,金三银四都结束一段时间了。 金三银四都已经结束,大部分企业也招到了自己需要的人,但是我看我的读者们还是有很大一部分人在抱…

算法套路十六——DP求解最长递增子序列LIS

算法示例:LeetCode300. 最长递增子序列 给你一个整数数组 nums ,找到其中最长严格递增子序列的长度。 子序列 是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。例如,[3,6,2,7] …

品优购项目学习记录02-main主体盒子搭建,推荐模块

文章目录 一、main主体盒子搭建1.1 newsflash新闻快报模块1.1.1 news新闻模块1.1.2 lifeservice生活服务模块1.1.3 bargain模块 二、推荐模块 一、main主体盒子搭建 1.main盒子宽度为980像素,位置距离左边220px(margin-left),给高度就不用清除浮动 2.mai…

桂院校园导航小程序 云开发项目 二次开发教程 1.0.1

Gitee代码仓库:桂院校园导航小程序 GitHub代码仓库:GLU-Guide 先 假装 大伙都成功安装了云开发项目,并能在 微信开发者工具 和 手机 上正确运行。 接着就是 将项目 改成自己的学校。 代码里的注释我就不说明了,有提到 我的学校…

vue 引入图片的问题

文章目录 为什么使用require自己讲解实例 - src下 - img验证 实例 - public下 - 绝对路径 - img报错,其中 imgurl5、imgurl6 找不到资源!个人猜想: 去掉 imgurl5、imgurl6 再次运行(开发环境):去掉 imgurl5…

EF Core Build failed. Use dotnet build to see the errors.

Build failed. Use dotnet build to see the errors. 今天学习abp框架用到EF Code First时,报出上述错误。 在网上查了很多资料。 dotnet build D:\Practice\abp\SourceCode\BookStore\src\Acme.BookStore.EntityFrameworkCore\Acme.BookStore.EntityFrameworkCor…

Stable Diffusion webui安装使用

参考: https://stability.ai/blog/stable-diffusion-public-release https://github.com/AUTOMATIC1111/stable-diffusion-webui 安装(6g显存) 1、conda创建python 3.10.6环境 conda create -n stable-diffusion pythonpython 3.10.6 也安装…

【axios】axios的完整配置

注意:本文实例化为TS版 1、axios概念 axios 是一个基于 promise 封装的网络请求库,它是基于 原生XHR 进行二次封装,可以说是 XHR 的一个子集,而 XHR 又是 Ajax 的一个子集 特点 从浏览器中创建 XMLHttpRequests从 node.js 创建…

C/CPP安装pthread教程;#include<pthread.h>无法引入该文件的解决方法;引入pthread后报错

在开发c及cpp的多并发程序时,常常会用到pthread.h头文件,但是pthread是需要自行安装的,下面就是在Windows平台使用Visual Studio安装pthread的教程。 1.下载并解压pthread库 在POSIX Threads for Windows - Browse Files at SourceForge.ne…

Unity 四元数

前言:在场景中,可以用旋转工具改变物体角度,也可以在Inspector窗口中改变物体的X、Y、Z值(欧拉角)来改变物体角度。 虽然用欧拉角表示角度和旋转,但一般人想不到,物体在三维空间的旋转并不是一…