目录

  • 摘要
  • 一、RGB图像的内存排列方式
  • 二、HWC格式和CHW格式
    • HWC格式
    • CHW格式
  • 三、HWC和CHW格式的关系
  • 总结

摘要

RGB图像是计算机视觉和图像处理领域中最为常见的图像格式之一,而在进行图像处理和深度学习计算时,通常需要对图像的尺寸和通道数进行规范化。本文将对RGB图像的内存排列方式、HWC和CHW格式进行详细解析,并探讨它们之间的关系。

一、RGB图像的内存排列方式

在计算机内存中,RGB图像的像素信息通常是按照BGR的顺序排列的,而不是RGB的顺序。这是因为在Windows平台上,像素数据是按照BGR的顺序存储在内存中的,而不是RGB的顺序。因此,当OpenCV读取一张RGB图像时,它会将像素数据按照BGR的顺序排列在内存中,而不是RGB的顺序。
例如,对于一张3×3的RGB图像,其像素信息在内存中的排列方式如下所示:
B G R B G R B G R
可知,每一个像素点都由三个值组成,分别表示该像素点在蓝色、绿色和红色通道中的颜色值,而整张图像的像素数据则按照BGR的顺序排列。
一般pytorch中的tensor,即网络的输入,要转换为plane的格式,即rrrgggbbb。

二、HWC格式和CHW格式

在机器学习和计算机视觉领域中,常用的图像尺寸表示格式有HWC和CHW两种格式。其中,H、W、C分别表示图像的高度、宽度和通道数,或者通道数、高度和宽度。

HWC格式

HWC格式是指按照高度、宽度和通道数的顺序排列图像尺寸的格式。例如,一张形状为256×256×3的RGB图像,在HWC格式中表示为[256, 256, 3]。在一些图像处理库或者底层框架中,例如OpenCV和TensorFlow,通常使用HWC格式表示图像尺寸。

在OpenCV中,读取的图片默认是HWC格式,即按照高度、宽度和通道数的顺序排列图像尺寸的格式。例如,一张形状为256×256×3的RGB图像,在OpenCV中读取后的格式为[256, 256, 3],其中最后一个维度表示图像的通道数。在OpenCV中,可以通过cv2.imread()函数读取图片,该函数的返回值是一个NumPy数组,表示读取的图像像素值。需要注意的是,OpenCV读取的图像像素值是按照BGR顺序排列的,而不是RGB顺序。因此,如果需要将OpenCV读取的图像转换为RGB顺序,可以使用cv2.cvtColor()函数进行转换。

CHW格式

CHW格式是指按照通道数、高度和宽度的顺序排列图像尺寸的格式。例如,一张形状为3×256×256的RGB图像,在CHW格式中表示为[3, 256, 256]。在计算机视觉和深度学习中,通常使用CHW格式表示图像尺寸。
在PyTorch中,模型接收的RGB图像通常采用CHW格式,即按照通道数、高度和宽度的顺序排列像素信息的方式。在CHW格式中,每个像素点的RGB值依次排列在内存中,通道数是第一维,高度是第二维,宽度是第三维。因此,对于一个形状为[C, H, W]的RGB图像,C表示通道数,通常为3,H表示高度,W表示宽度。对于每个像素点,其RGB值依次存储在内存中相邻的位置上。具体来说,假设某个像素点的坐标为(i, j),其在内存中的存储位置可以表示为:

offset = i * W * C + j * C

其中,i表示该像素点在第二维中的位置,j表示该像素点在第三维中的位置,C表示通道数,W表示宽度。这个公式可以计算出该像素点在内存中的偏移量,从而可以访问该像素点的RGB值。需要注意的是,在PyTorch中,RGB图像的像素值通常采用浮点数的形式表示,并且像素值的范围通常是[0, 1]或[-1, 1]。

三、HWC和CHW格式的关系

HWC格式和CHW格式虽然表示方式不同,但它们可以互相转换。对于一张形状为[H, W, C]的图像,我们可以使用transpose函数将其转换为形状为[C, H, W]的图像,即CHW格式。转换方法如下:

import numpy as np
# 创建一个形状为[256, 256, 3]的随机图像
img = np.random.rand(256, 256, 3)
# 将HWC格式的图像转换为CHW格式
img_chw = np.transpose(img, (2, 0, 1))

另外,对于一些深度学习框架,如PyTorch和Caffe2等,通常要求输入的图像张量格式为CHW格式。因此,在使用这些框架进行图像处理时,需要将图像张量从HWC格式转换为CHW格式。

总结

本文对RGB图像的内存排列方式、HWC和CHW格式进行了详细解析,并探讨了它们之间的关系。在进行图像处理和深度学习计算时,需要对图像的尺寸和通道数进行规范化,以便于不同框架和库之间进行数据格式转换和模型输入。

【深度学习】RGB图像的内存排列方式及HWC和CHW格式解析相关推荐

  1. python opencv 录制视频_如何使用OpenCV、Python和深度学习在图像和视频中实现面部识别?...

    Face ID 的兴起带动了一波面部识别技术热潮.本文将介绍如何使用 OpenCV.Python 和深度学习在图像和视频中实现面部识别,以基于深度识别的面部嵌入,实时执行且达到高准确度. 以下内容由 ...

  2. 学习笔记之——基于深度学习的图像超分辨率重建

    最近开展图像超分辨率( Image Super Resolution)方面的研究,做了一些列的调研,并结合本人的理解总结成本博文~(本博文仅用于本人的学习笔记,不做商业用途) 本博文涉及的paper已 ...

  3. 基于深度学习的图像超分辨率重建

    最近开展图像超分辨率( Image Super Resolution)方面的研究,做了一些列的调研,并结合本人的理解总结成本博文~(本博文仅用于本人的学习笔记,不做商业用途) 本博文涉及的paper已 ...

  4. 深度学习:图像检测概述rcnn, fastrcnn, fasterrcnn,yolo,ssd

    RCNN,Fast RCNN ,faster Rcnn :https://www.cnblogs.com/dudumiaomiao/p/6560841.html 一文看懂目标检测 rcnn fast ...

  5. 基于深度学习的图像超分辨率——综述

    2021-Deep Learning for Image Super-resolution:A Survey 基本信息 作者: Zhihao Wang, Jian Chen, Steven C.H. ...

  6. 深度学习图像融合_基于深度学习的图像超分辨率最新进展与趋势【附PDF】

    因PDF资源在微信公众号关注公众号:人工智能前沿讲习回复"超分辨"获取文章PDF 1.主题简介 图像超分辨率是计算机视觉和图像处理领域一个非常重要的研究问题,在医疗图像分析.生物特 ...

  7. 深度学习在图像智能审核中的应用(nsfw篇)

    深度学习在图像智能审核中的应用(nsfw篇) NSFW(not suitable for work)图片,顾名思义,就是一些不太适合在工作中浏览的图片,本文介绍的工作是通过深度卷积神经网络来对此类图片 ...

  8. 深度学习在图像领域的几大任务

    深度学习对于图像的检测共分为4大任务: 从任务需求本身的角度来考虑,由于四个任务的处理结果的信息量依次增加,需要的工具的复杂度会依次增加,因此完成相应任务的难度也会越依次增加. (1)图像分类a--- ...

  9. 【AI白身境】深度学习必备图像基础

    文章首发于微信公众号<有三AI> [AI白身境]深度学习必备图像基础 今天是新专栏<AI白身境>的第四篇,所谓白身,就是什么都不会,还没有进入角色. 我们已经说了linux基础 ...

最新文章

  1. 分类模型评估体系:混淆矩阵、PR曲线、F1、Weighted F1、Micro F1、Macro F1、ROCAUC、KS曲线、Lift曲线、GAIN曲线
  2. 老王学linux-centos6.7drbd8.4.3
  3. Oracle备份恢复一(手动备份)
  4. python检测网格
  5. 61计蒜客 动态规划基础 蒜头君的城堡之旅
  6. vue2.0 $router和$route的区别
  7. 15分钟内使用Twilio和Stormpath在Spring Boot中进行身份管理
  8. 【Pytorch神经网络基础理论篇】 07 线性回归 + 基础优化算法
  9. 这是一个成长差异化的时代
  10. 互联网晚报 | 11月25日 星期四 | 花呗启动品牌隔离;小米MIUI全球月活用户突破5亿;《长津湖》成中国影史票房冠军...
  11. android intent bundle传递参数,Android 使用Intent和Bundle传递数据及如何传递enum
  12. 一个程序掌握C++带参构造函数、带有默认参数的构造函数【C++类的经典使用案例】
  13. 位运算简介及实用技巧(二):进阶篇(1)
  14. 《Redis开发与运维》读书笔记一
  15. 百度杀毒软件2013低调发布 仅面向泰国市场推出
  16. js递归遍历树形json数据
  17. 学校计算机硬件管理制度,学校规章制度之计算机硬件管理制度
  18. python精准识别图片文字
  19. java怎么实现分享链接_分享Java
  20. YTU OJ 母牛的故事

热门文章

  1. ZigBee定义与 IOT应用调研分析
  2. 郑州计算机中专学校排名,郑州中专院校排名_2021公办中专较新排名
  3. 数据结构c语言版朱站立第五版答案,西安交大朱站立《数据结构——使用C语言》头文件...
  4. RocketMQ消费优化
  5. aop中的@within,@Pointcut,@annotation
  6. google推荐系统初探
  7. 2021 年高教社杯全国大学生数学建模竞赛题目(D 题 连铸切割的在线优化)
  8. 166页7万字智慧工厂可视化解决方案
  9. 论文笔记:COST: CONTRASTIVE LEARNING OF DISENTANGLEDSEASONAL-TREND REPRESENTATIONS FORTIME SERIES FOREC
  10. 什么是软件外包及我国的软件外包情况