OpenCV中图像以Mat类型保存时各通道数据在内存中的组织形式及python代码访问各通道数据的简要方式

以最简单的4 x 5三通道图像为例,其在内存中Mat类型的数据组织形式如下:

每一行的每一列像素的三个通道数据组成一个一维数组,一行像素组成一个二维数组,整幅图像组成一个三维数组,即:

Mat.data[4, 5, 3] = [

[[B0, G0, R0],[B1, G1, R1],[B2, G2, R2],[B3, G3, R3],[B4, G4, R4]],

[[B5, G5, R5],[B6, G6, R6],[B7, G7, R7],[B8, G8, R8],[B9, G9, R9]],

[[B10, G10, R10],[B11, G11, R11],[B12, G12, R12],[B13, G13, R13],[B14, G14, R14]],

[[B15, G15, R15],[B16, G16, R16],[B17, G17, R17],[B18, G18, R18],[B19, G19, R19]]

]

我们通过python单独访问每个通道的数据可以采用切片(Slice)操作的方是:

img_blue   = img_mat[:, :, 0]

img_green = img_mat[:, :, 1]

img_red    = img_mat[:, :, 2]

上述代码有些抽象,启动python我们模拟操作一下,控制台输入python,进入shell,导入numpy(import numpy as np),然后输入如下语句:

a = np.arange(36).reshape(4, 5, 3)

我们模拟了一个4行、3列、3通道的图像数据,其内容如下:

我们随便取一通道的数据,比如BGR三通道的G通道,也就是第2个通道,继续在python的shell界面输入如下指令:

a[:, :, 1]

数据如下:

上述数据是一个二维数组:每一行的G通道数据组成一个一维数组,整幅图像的G通道数据组成一个二维数组。

posted on 2018-09-29 21:09 Neo-T 阅读(...) 评论(...) 编辑 收藏

转载于:https://www.cnblogs.com/neo-T/p/9732974.html

OpenCV中图像以Mat类型保存时各通道数据在内存中的组织形式及python代码访问各通道数据的简要方式...相关推荐

  1. opencv mat用数组初始化_10、OpenCV中图像和Mat类型(一)

    Mat类型可以被认为是OpenCV库的核心. OpenCV库中绝大多数的函数都是Mat类的成员,以Mat作为参数,或者Mat作为返回值. Mat类用于表示任意维数的密集数组.即使对于数组中的该条目为零 ...

  2. java 内存分布_java的各类型数据在内存中分配情况详解_

    1. 有这样一种说法,如今争锋于IT战场的两大势力,MS一族偏重于底层实现,Java一族偏重于系统架构.说法根据无从考证,但从两大势力各自的社区力量和图书市场已有佳作不难看出,此说法不虚,但掌握Jav ...

  3. C语言学习(三)内存初识、数据在内存中的保存形式、程序载入内存

    (一)内存与存储(硬盘)   首先要明确一点,内存不同于存储.内存中的数据存储在内存条中.而一般的存储,数据则保存在硬盘中.这里我只给出一些表象的区别,如果还想更深入的了解,请自行搜索,此篇所展示的重 ...

  4. SpringMvc 系统启动时加载数据到内存中

    SpringMvc 系统启动时加载数据到内存中 学习了:http://blog.csdn.net/newstruts/article/details/18668269 https://www.cnbl ...

  5. c语言字母是怎么存储,C语言之数据在内存中的存储

    C语言之数据在内存中的存储 在我们学习此之前,我们先来回忆一下C语言中都有哪些数据类型呢? 首先我们来看看C语言中的基本的内置类型: char //字符数据类型 short //短整型 int //整 ...

  6. C语言——深度剖析数据在内存中的存储

    大家好!我是保护小周ღ,本期为大家带来的是深度剖析数据在内存中的存储,不知道,大家学了这么久C语言,有没有想过一个问题,我们在程序设计中的数据是怎么在计算机中存储的?我们都知道 一个整型数据 int ...

  7. 梦开始的地方 —— C语言数据在内存中的存储(整形+浮点型)

    文章目录 整形在内存中的存储 1. 数值类型的基本分类 2. 整形在内存中的存储 1. 原码.反码.补码 2. 内存中为什么要存放补码? 3. 大小端存储 4. 无符号有符号数练习 5. 有符号数无符 ...

  8. C语言--数据在内存中的存储

    目录 一.数据类型详细介绍 1.数据类型介绍 2.数据类型基本归类 二.整形在内存中的存储:原码.反码.补码 三.大小端字节序介绍及其判断 练习题 四.浮点型在内存中的存储解析 一.数据类型详细介绍 ...

  9. 【C进阶】第十篇——数据在内存中的存储

    数据类型的介绍 类型的基本归类 整型在内存中的存储 原码,反码,补码 大小端介绍 什么是大小端 为什么有大端和小端? 判断当前机器的字节序 浮点型在内存中的存储 例题引入 浮点数的存 浮点数的取 浮点 ...

最新文章

  1. iOS中JS 与OC的交互(JavaScriptCore.framework)
  2. VS2015占内存大吗?_手机是6GB运行内存,何为后台却显示3G内存?
  3. Django rest framework 基础
  4. 几分钟了解阿里云云服务器ECS
  5. 一起玩树莓派3+使用Gitlab搭建专业Git服务
  6. python实现ping命令_[小菜随笔]python tkinter实现简单的ping命令
  7. matlab 万年历,matlab时钟万年历 matlab时钟万年历(附word说明文档): 程序主要 联合开发网 - pudn.com...
  8. 微信小程序 request请求封装
  9. linux内核input子系统解析【转】
  10. Laravel 队列发送邮件
  11. python写代码酷炫插件_使用 Python 制作酷炫多彩的 Jenkins 插件词云图
  12. 【密码学】抽象代数——群(学习笔记)
  13. 视频传输协议总结、码率
  14. Java程序员面试笔试宝典答案,基于HTML
  15. 不评价别人的生活,是一个人最基本的修养 // 转
  16. 记录CTF命令执行练习中遇到的几道题(一些PHP命令过滤的绕过方法)
  17. Fluent中的各种初始化
  18. UNR#2 梦中的题面 HDU6056
  19. 华为畅享二十Android是,华为畅享20 Pro智慧护眼怎么样?华为畅享20 Pro智慧护眼详解...
  20. TypeScripe中那些奇奇怪怪的符号?!??

热门文章

  1. Max_user_connections 与Max_connections 与max_connect_errors
  2. 图像特征点—SIFT特征点
  3. python制作图形化界面_python图形化界面设计(wxpython)一布局管理
  4. linux命令find的功能,linux find命令使用一览表
  5. python删除字典中性别为男_python初学者,用python3实现基本的学生管理系统代码实例...
  6. qfdw.xyz sq.php,GitHub - STORMSQ/sqphp: 練習用框架,使用PHP搭建
  7. java正则 group_Java正则表达式,分组 group()、groupCount()
  8. C语言 数组(做个笔记)
  9. linux的android工作室,Android工作室在启动时抛出错误,linux机器
  10. 力扣(LeetCode)刷题,简单题(第22期)