深度图坐标转化彩色图坐标

Halcon深度图转伪彩图 阅读详情

1. 理论

  • 像素坐标系坐标原点在图像的左上角,X轴沿着水平方向向右,Y轴竖直向下
  • 图像坐标系坐标原点在图像的中心,X轴沿着水平方向向右,Y轴竖直向下
  • 相机坐标系X轴沿着水平方向向右,Y轴竖直向下,Z轴向前
  • 像素(u,v)和三维点(x,y,z)的对应关系是
  • u=fx*x/z+cx (1)
  • v=fy*y/z+cy (2)
  • x=(u-cx)*z/fx (3)
  • y=(v-cy)*z/fy (4)
  • fx,cx,fy,cy是相机的内参
  • 具体分析可以看这里

2.流程

  • 从上面两个公式我们知道转化需要距离,所以只能从深度图往彩色图转化
  • 问题可描述为已知深度图的点(ud,vd,z),求对应彩色图的(u,v)
    • 根据(3)(4)使用求出(ud,vd,z)深度相机坐标系下的坐标
    • 将上述坐标转化到彩色相机坐标系,转化关系和两个相机的安装位置有关
    • 根据(1)(2)使用彩色相机坐标系下的坐标求出彩色图的(u,v)
    • 如果将彩色图的像素值赋值给深度图,会看到一个缩小版的图片
    • 可以声明和彩色图像大小相同的数组,将深度存到对应的位置,就能直接从彩色图获取深度

3.代码

  • 这里使用的是ROS的数据格式
typedef union USHORT_UNION {
  ushort num;
  char c[2];
} ushort_union;

ushort Little(char c0, char c1) {
  ushort_union tmp;
  tmp.c[0] = c0;
  tmp.c[1] = c1;
  return tmp.num;
}

float aligns[640][480];
void dep2color(const sensor_msgs::ImageConstPtr& imag, const sensor_msgs::Image::ConstPtr& depth) {
  for(int i = 0; i < 640; ++i){
    for(int j = 0; j < 480; ++j) {
      aligns[i][j] = 0;
    }
  }
  
  for(int u = 0; u < 640; ++u) {
    for(int v = 0; v < 480; ++v) {
      int index = v * depth->width + u;
      float z = Little(depth->data[index * 2], depth->data[index * 2 + 1])/1000.0; 
      if(z == 0) continue;
      float x = (u-322.5)*z/386.3+0.044;
      float y = (v-238.4)*z/386.3;
      int uu = 615.5*x/z+313.8;
      if(uu < 0 || uu >= 640) continue;
      int vv = 614.3*y/z+233.2;
      if(vv < 0 || vv >= 480) continue;
      aligns[uu][vv] = z;
    }
  }
}
相机成像坐标系转换的运算过程 介绍了相机系统中从世界坐标系到像素坐标系转换的数学计算过程 阅读详情

相关推荐

彩色图和深度图转点云

环境:windows10、VS2013、opencv 2.49、openNi、PCL1.8opencv 环境搭建参考https://www.cnblogs.com/cuteshongshong/p/4057193.htmlhttps://blog.youkuaiyun.com/u013105549/article/details/50493069PCL1.8+openNi搭建参考https://blog.cs...

blademan1234的博客 1万+

python 将16位 png 深度图转化为伪彩色图

python 将16位 png 深度图转化为伪彩色图: 全部代码如下: import cv2 import os.path import glob import numpy as np from PIL import Image PNG_FILE = 'F:\\shendu_buquan_jieguo\\1\\kitti\\*.png' TARGET_FILE = 'F:\\shendu_buquan_jieguo_color\\1\\kitti' def convertPNG(pngfile,outdi

weixin_44832383的博客 5476

基于深度图的图像修复------传统方法

图像修补一--------单幅图像修补 图像中常有缺失或者损坏的部分,即空白区域或者有误的区域。图像修补就是根据这些区域周围的信息完成对空白区域进行填充,以实现图像恢复。 方法: 示例方法一: 向空白点周围的八个方向寻找参考点,取距离二次方的倒数为加权系数。 示例方法二: 选取空白...

xjtuse123的博客 6186

已知深度图,获得某个像素点的三维坐标

如何通过深度图和已知像素点坐标获取像素点的三维坐标

qq_39211006的博客 7063

Halcon3D视觉--深度图转彩色图

【代码】Halcon3D视觉--深度图转彩色图。

weixin_52005088的博客 1117

VFIO框架源码分析(二十二)- IOMMUFD 的脏页跟踪与 Dirty Bits 读取

在虚拟化热迁移(Live Migration)的场景中,脏页追踪(Dirty Page Tracking)是最具挑战性的环节之一。它的核心任务是实时捕获设备(DMA)对内存的写操作,以便 VMM(如 QEMU)知道哪些内存页需要被重新传输到目标主机。在强耦合与粗粒度:脏页追踪是绑定在 Container 上的。这意味着,如果一个 Container 内有多个设备,哪怕只有一个设备在写内存,脏页追踪也会影响 Container 内的所有设备。软件模拟开销大。

qq_36071928的博客 1042

结合彩色图和深度图创建点云(OpenCV+OpenNI+PCL)

试验了好久了,终于成功了!用OpenNI获取彩色和深度数据流,转化成OpenCV的Mat图像格式。 对相机进行标定,获取相机的内部参数: Calibration results after optimization (with uncertainties):   //优化后的参数值 Focal Length:          fc = [ 510.99171   513.71815 ]

KangHui的专栏 1万+

《哥谭神话-工程篇》01.Palantir 平台架构解析-混乱数据如何转化唯一真相源?

Palantir 平台的架构哲学可以概括为将洞察落地为行动,其核心是将“获取唯一真相”能力深度嵌入现有的、复杂的工作流程中,成为提升运营效率和决策质量的倍增器。

895

ubuntu系统下python直接调用pyrealsense2和mediapipe实现realsense相机3D位姿识别

3.本案例中用的是mediapipe的识别模型反馈目标的中心像素坐标,基于此我们也可以实现手势人脸识别,或者yolo模型识别等的像素坐标,根据像素坐标我们就可以通过该点的深度信息得出该点的3D坐标。4.使用3D相机选型的时候,要注意一下相机的深度识别范围,像realsense455只能识别0.3-6m范围内的深度信息,对于小于0.3m距离的深度就没有办法进行识别了。2.第三步中返回的三维坐标数据为根据像素位置、相机内参、深度距离计算得出的,感兴趣的也可以利用内参的公式和深度自己算一下,可以参考下面公式。

m0_46501712的博客 1879

14.4kW大功率母线变换器设计:LLC+矩阵变压器+GaN实战解析

在数据中心供电架构中,隔离母线变换器将高压直流母线转换为48V低压母线,是大功率供电链路的核心环节。随着功率密度与效率要求不断攀升,传统移相全桥与普通LLC方案已难以满足300A级输出需求。基于LLC/CLLC谐振拓扑,结合矩阵变压器与GaN功率器件,成为新一代高性能母线变换器的主流技术路线。矩阵变压器将大功率磁性元件拆分为多个小单元,配合原边串联副边并联结构,有效降低绕组损耗并提升功率密度;GaN器件则通过高频软开关进一步压减开关损耗。本文以一台14.4kW样机为例,完整梳理从拓扑选型、谐振参数计算、同步

weixin_28273593的博客 341

Windows 10/11下Drive Composer Pro 2.9.0完整安装与连接ACS880变频器实战教程

本文详细介绍了在Windows 10/11系统上安装Drive Composer Pro 2.9.0并连接ACS880变频器的完整教程。从系统环境准备、软件安装到许可证配置,再到USB、蓝牙和以太网三种连接方式的实战操作,帮助工业自动化工程师快速掌握ABB变频器的调试技巧。

weixin_32956805的博客 522

RGB彩色图、Depth深度图

深度图并不可以直接使用, 因为深度图只能反映出了物体在三维空间中一个方向上的信息,即拍摄场景中各个点到相机的距离。深度相机采集深度图,通过相机内参矩阵,可以将图中每一个像素的位置对应到世界坐标系中,也就是,通过内参矩阵的变化,实现二维到三维空间的映射。( X,Y,Z) 来表示该像素点的三维坐标————》通过这样的转换,我们就可以获得图像中每一个像素点在空间坐标系中对应的三维坐标。物体在世界坐标系中都会存在着各自的三维坐标,这个三维坐标代表了物体在空间中的位置,是绝对且唯一的。如,颜色相近导致位置信息丢失。

cocapop的博客 1万+

通过 CoovaChilli 和 FreeRADIUS 搭建一个公共 Wi-Fi 的认证系统,实现用户连接到 Wi-Fi 后通过 Captive Portal(强制登录页面)进行认证

要实现固定设备连接的功能,你可以通过MAC 地址认证来限制哪些设备可以通过 FreeRADIUS 进行身份验证和连接。你可以在 FreeRADIUS 的users文件中直接配置允许的设备的 MAC 地址,也可以通过数据库存储和查询设备信息,进一步提高管理效率。通过这些方法,你可以灵活地控制哪些设备能够访问你的 Wi-Fi 网络。

m0_69943017的博客 2644

RealSense SR300 坑5米 彩色图深度图的对齐

由于相机位置的不同,彩色图和深度图并不是完全对应的,将他们对齐就需要上一章提到的相机内参了。 效果

qiuxinmin的博客 1261

微信文件自动归档!手把手教你用OpenClaw搭个自己的“数字员工”,告别重复劳动

很多人说“AI是未来”,但未来不是靠喊口号的。OpenClaw的真正价值,是让你把重复劳动交出去,把时间留给真正需要创造力的事。这事真能干,而且不难。下载OpenClaw(GitHub仓库按我写的步骤跑一遍遇到坑,评论区留言——我亲自帮你看作者后记:上周五,我让AI自动归档了文件后,终于在5点准时下班。回家路上,我给它发了条消息:“干得漂亮”。它没回,但我知道——它在默默等我的下一条指令。

2601_94871597的博客 411

【电机应用控制】——直流有刷电机&驱动板/编码器介绍&PID算法&实操代码思路

声明:学习笔记来自正点原子B站教程,仅供学习交流!!玩具车、平衡车、无人机、印刷机、打印机、手机振动马达等电机即电动机(motor),也叫作马达,电能转化为机械能。按电源:直流、交流按用途:驱动用、控制用按运转速度:高速、低速、恒速、调速直流电机(有刷、无刷)、舵机、步进电机、伺服电机1、直流有刷电机(Brushed DC Motor,简称BDC)是内含电刷装置的将直流电能转化为机械能的电动机。例如四驱赛车四个马达操控方便、成本低、维护时换电刷即可;

weixin_51658186的博客 2万+

Kinect 获取深度图计算距离,并进行彩色图和深度图之间的映射

Kinect 获取深度图计算距离,并进行彩色图和深度图之间的映射 最近所进行的项目需要利用KINECT获取深度距离,需要得到彩色图中某一点的位置,在网上找了很多资料,都不是很好,碰了很多坑,这里我整理了一下发给大家,大家有需求可以自取。 获取深度图计算距离 KINECT安装openCv安装这里就不说了呢,网上一大堆。 直接上代码: 注意这里是初始化的一些代码,有些头文件是之后做通...

SnapChrist的博客 1万+

基于ComfyUI+H3的本地化竖屏短剧自动化生成工作流

本文介绍了一种基于ComfyUI和MiniMax H3的本地化竖屏短剧自动化生成工作流。该方案通过纯机械读取分镜总纲表格,实现从文本到视频的全自动生成,支持多人同框稳定输出、人脸一致性保持、音视频同步生成等功能。工作流包含图像生成、人工审核、视频生成和音频处理四个核心环节,采用本地化部署方案避免云端服务的限制和成本问题。文章详细说明了环境部署步骤、必需的自定义节点安装以及显存优化配置,特别针对16GB显存设备提供了量化压缩、GPU独占调度等技术方案,确保系统流畅运行。

huanghm88的专栏 322

利用深度图建立三维点云地图笔记

前言:这几天在独立地研究对RGBD图像序列,建立其三维点云地图。由于我并没有借鉴像RTAB-MAP等SLAM方法,所以本文仅仅能够帮助学习和理解是三维建图的过程,对于实际的三维建图应用,意义并不大。 本文的方法非常的简单粗暴,思路是首先求取每一帧深度图像的位姿,其次,将每一帧深度图转换为点云,最后将点云转换到世界坐标系下。对于求取深度图的位姿,可以使用ORB-SLAM2算法得到;对于深度图转点云,...

sunqin的博客 9762

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

批量把彩色图和深度图转换为彩色点云文件(C++)

1、单个彩色图和深度图转换为彩色点云文件(C++): 全部代码如下: // C++ 标准库 #include <iostream> #include <string> using namespace std; // OpenCV 库 #include <opencv2/core/core.hpp> #include <opencv2/highgui/highgui.hpp> // PCL 库 #include <pcl/io/pcd_io.h&g

weixin_44832383的博客 1523

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

彩色图像和深度图像合成点云

彩色图像 深度图像 点云图 从2D到3D(数学部分) 上面两个图像给出了机器人外部世界的一个局部的信息. 假设这个世界由一个点云来描述:X={x1,…,xn}.其中每一个点,有r,g,b,x,y,z一共6个分量,表示它们颜色与空间位置。 颜色方面,主要由彩色图像记录; 而空间位置,可以由图像和相机模型、姿态一起计算出来。 对于常规相机,SLAM里使用针孔相机模型: ...

qq_43176116的博客 8487

深度图详解

深度图是为计算机视觉和3D处理提供深度信息的核心数据类型。它通过各种方法生成,广泛用于机器人、自动驾驶、3D建模、虚拟现实等领域。尽管深度图的生成和处理过程中可能面临噪声、分辨率和遮挡等挑战,但通过算法的优化和传感器的进步,深度图的应用将会更加广泛和准确。

weixin_73414031的博客 5568

深度图与RGB彩色图的对准(内附Python代码)

在使用RealSense深度相机前,必须把深度相机和RGB相机了使用。。。不然会导致采集到的图像不对齐(如下图所示):左边是RGB图像,右边是深度图像。关于RealSense相机的校准,网上已经有了许多教程,这里就不再赘述。本文主要内容是如何处理的未对准的图像,以避免之前采集的一堆实验数据作废。搜索了很多教程,但是没找到现成的代码,唯一现成的代码是用C++写的。。。由于我太废物只会最简单的Python,因此决定自己写一版Python的代码。

weixin_47331580的博客 9159

realsense D4xx红外图像的某个像素点转化到彩色图像中的对应像素点

一般是深度图像素和彩色图像素能对齐即匹配,如果是红外摄像头拍的原始左右眼红外图像呢? 其实深度图像素和单眼红外图像像素有个默认的对应关系:一般是跟左眼红外图像相同,也有跟右眼红外图像相同的,realsense是跟左眼的像素相同,即一一对应。 思路:通过以上关系,可以根据左眼红外图中的UV坐标获得其空间坐标即深度图中像素的空间坐标(这里的算法realsense没有公布,虽然是左右眼匹配fb/d公式算...

weixin_44345862的博客 90

VTK——模拟深度相机拍摄深度图(RGB-D)

1.设置vtkCamera内参 已知相机内参为:fx、fy、cx、cy,图像尺寸为:width、height。 相机相对于世界坐标系的外参矩阵为extrinsicMatrix4x4,即相对于世界坐标系的旋转平移。如果不存在外参,则该矩阵为单位矩阵。 首先保证renderWindow的尺寸也设置为width、height。 // 将相机相对世界坐标系的外参赋值给相机 camera->SetModelTransformMatrix(extrinsicMatrix4x4); // 由于SetM

qq_29912325的博客 4339

利用lidar生成深度图

深度图像(Depth Images),也被称为距离影像(Range Images),是指将图像采集器到场景中各点的距离(深度)值作为像素值的图像,它直接反映了景物可见表面的几何形状,利用它可以很方便的解决3D目标描述中的许多问题。深度图像经过坐标转换可以计算为点云数据,有规则及必要信息的点云数据也可以反算为深度图像数据。从数学模型上看,深度图像可以看作是标量函数 在集合 上的离散采样,得到 ,其中 为二维网格(矩阵)的索引,

ZauberC的博客 1832
上一篇: sensor_msgs::Image转换成深度图,或直接获取距离
下一篇: ROS订阅tf并转换坐标
刀么克瑟拉莫
博客等级 码龄14年 68粉丝 268原创
评论 10
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

刀么克瑟拉莫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值