Advertisement

视觉SLAM笔记(23) 图像

阅读量:

视觉SLAM笔记中讨论了图像的基础知识。首先解释了相机如何将三维世界转换为二维数组形式存储的图片,并说明了程序中处理图像时不需要区分数值矩阵与实际意义的区别。接着详细介绍了灰度图和RGB图像的表示方法:灰度图使用单通道(I(x,y)),而彩色图像则由R、G、B三个通道组成,默认顺序为B,G,R或R,G,B取决于应用领域(如OpenCV)。此外还提到了像素坐标系的不同定义方式及其对访问顺序的影响,并强调了正确理解通道顺序的重要性以避免程序中的越界错误。
视觉SLAM笔记中讨论了图像的基础知识。首先解释了相机如何将三维世界转换为二维数组形式存储的图片,并说明了程序中处理图像时不需要区分数值矩阵与实际意义的区别。\n\n接着详细介绍了灰度图和RGB图像的表示方法:灰度图使用单通道(I(x,y)),而彩色图像则由R、G、B三个通道组成,默认顺序为B,G,R或R,G,B取决于应用领域(如OpenCV)。\n\n此外还提到了像素坐标系的不同定义方式及其对访问顺序的影响,并强调了正确理解通道顺序的重要性以避免程序中的越界错误。\n\n视觉SLAM笔记中讨论了图像的基础知识。\n\n首先解释了相机如何将三维世界转换为二维数组形式存储的图片,并说明了程序中处理图像时不需要区分数值矩阵与实际意义的区别。\n\n接着详细介绍了灰度图和RGB图像的表示方法:灰度图使用单通道(I(x,y)),而彩色图像则由R、G、B三个通道组成,默认顺序为B,G,R或R,G,B取决于应用领域(如OpenCV)。\n\n此外还提到了像素坐标系的不同定义方式及其对访问顺序的影响,并强调了正确理解通道顺序的重要性以避免程序中的越界错误。\n\n视觉SLAM笔记中讨论了图像的基础知识。\n\n首先解释了相机如何将三维世界转换为二维数组形式存储的图片,并说明了程序中处理图像时不需要区分数值矩阵与实际意义的区别。\n\n接着详细介绍了灰度图和RGB图像的表示方法:灰度图使用单通道(I(x,y)),而彩色图像则由R、G、B三个通道组成,默认顺序为B,G,R或R,G,B取决于应用领域(如OpenCV)。\n\n此外还提到了像素坐标系的不同定义方式及其对访问顺序的影响,并强调了正确理解通道顺序的重要性以避免程序中的越界错误。\n总结:该段文字全面涵盖了数字视觉 SLAM 中的核心概念——从基础到细节——并提供了清晰的技术细节说明。

视觉SLAM笔记(23) 图像

  • 1. 图像描述
  • 2. 图像表示
  • 3. 图像的内容
    • 3.1. 像素坐标
    • 3.2. 像素信息
    • 3.3. 通道

1. 图像描述

相机装备镜头,将三维世界的细节信息编码成一个由像素构成的照片。随后被记录到计算机系统里,并作为数据源参与到后续的处理流程中。

在数学领域中对图像进行描述的方式是一个矩阵;而在计算机系统中数字信息占据一段连续的磁盘或内存空间并被组织为一个二维数组


2. 图像表示

以最基础的灰度图作为研究起点 展开讨论 在一张灰度图中 每个像素位置 (x y) 对应于一个特定的灰度值 I 由此可知 图像的空间分布可以用矩阵形式精确描述 这种矩阵形式反映了图像的宽度w 和高度h 以及其中包含的信息量

在这里插入图片描述

然而计算机无法表示全部的实数空间 因此仅能在特定范围内对图像进行量化

在图像处理领域中,灰度图通常采用 0 到 255 的数值范围来表示图像的亮度值(即无符号字符型占一个字节)
例如一张具有宽度为640像素、高度为480像素分辨率的灰度图像就可以通过这种方式进行表示:

复制代码
    unsigned char image[480][640];
    
    
      
    
    AI助手

在程序设计中对图像的存储采用二维数组的形式实现
该二维数组的第一个索引代表行坐标值 而第二个索引则对应列坐标值
该二维数组所具有的行的数量等于图像的高度值 其列的数量则等于图像宽度值


3. 图像的内容

图像是由像素组成的


3.1. 像素坐标

当访问某一个像素时,需要指明它所处的坐标

在这里插入图片描述

采用了传统的像素坐标系定义方式:通常将像素坐标系的原点定位于图像左上方,并规定X轴向右延伸、Y轴向下延伸。如前述u、v坐标系统

假设存在第三个轴的情况下,在遵循根右手法则的基础上,
按照该法则,
Z轴应当指向前方。
该种定义方法与其坐标系统具有一致性。

通常所说的图像宽度与列数分别对应于X轴。而图像行数或高度则分别对应于Y坐标轴。基于这种定义方法,在程序中考虑一个位于坐标点(x,y)处的像素时,在程序中如何访问该像素的位置呢?

复制代码
    unsigned char pixel = image[y][x];
    
    
      
    
    AI助手

它对应着灰度值 I(x,y) 的读数

请注意这里的x和y坐标的顺序。
在处理坐标系问题时显得有些冗杂。
这种下标顺序错误在调试过程中常被发现,并且具有一定的隐蔽性。

如果在编写程序时无意中颠倒了变量x和y的位置,在编译阶段并未收到任何提示信息;然而,在程序运行过程中只能观察到一个越界错误的表现。


3.2. 像素信息

每个灰度像素可以用8位数字表示,其取值范围是0到255之间。当所需记录的信息量超过这个容量时,则需要更高精度的数值来描述。

通过 RGB-D 相机的深度图,在每个像素中表示了该像素到相机的距离,并以毫米为单位进行记录。然而 RGB-D 相机的最大测量距离(即量程)通常在十几米范围内,并超出 255 的最大值范围(即数字系统能够处理的最大数值)。

此时, 我们通常会采用 16位整数 (C++中的unsigned short类型)来存储深度图信息
具体来说, 这些值将处于0到65,536的范围之间
将其转换为毫米单位后, 最大可表示长度为约65米, 这对于一台RGB-D相机的需求来说是足够的


3.3. 通道

彩色图像的表示则基于通道(channel)这一重要概念。
在计算机领域中,则以红、绿、蓝颜色的组合来表示各种色彩。
因此,在每个像素中都需要记录其R、G、B三个值作为通道参数。

举例来说,在信息论中定义的典型彩色图像通常包含三个颜色通道(红、绿、蓝),每个通道均由8位二进制整数组成...。按照这一规定,在数字图像处理中一个像素占据的空间编码需要24位

该系统的通道数目和顺序都可自由确定。
在 OpenCV 应用场景下,默认采用 B、G、R 作为彩色图像各通道的排列方式。
即当获取一个 24 位像素时,则其前 8 位代表蓝色数值、中间 8 位代表绿色数值、最后 8 位代表红色数值。

亦可用 R, G, B 顺序表示彩色图
当需要表示图像透明度时,则采用 R, G, B, A 四个通道


参考:

《视觉SLAM十四讲》


相关推荐:

RGB-D相机模型在视觉SLAM中的应用(第22篇)
双目相机系统及其应用(第21篇)
单目相机系统及其工作原理(第20篇)
相似变换群与李代数(第19篇)
Sophus算法在计算机视觉中的研究进展(第18篇)


谢谢!

全部评论 (0)

还没有任何评论哟~