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通道数据组成一个二维数组。
转载于:https://www.cnblogs.com/neo-T/p/9732974.html
OpenCV中图像以Mat类型保存时各通道数据在内存中的组织形式及python代码访问各通道数据的简要方式...相关推荐
- opencv mat用数组初始化_10、OpenCV中图像和Mat类型(一)
Mat类型可以被认为是OpenCV库的核心. OpenCV库中绝大多数的函数都是Mat类的成员,以Mat作为参数,或者Mat作为返回值. Mat类用于表示任意维数的密集数组.即使对于数组中的该条目为零 ...
- java 内存分布_java的各类型数据在内存中分配情况详解_
1. 有这样一种说法,如今争锋于IT战场的两大势力,MS一族偏重于底层实现,Java一族偏重于系统架构.说法根据无从考证,但从两大势力各自的社区力量和图书市场已有佳作不难看出,此说法不虚,但掌握Jav ...
- C语言学习(三)内存初识、数据在内存中的保存形式、程序载入内存
(一)内存与存储(硬盘) 首先要明确一点,内存不同于存储.内存中的数据存储在内存条中.而一般的存储,数据则保存在硬盘中.这里我只给出一些表象的区别,如果还想更深入的了解,请自行搜索,此篇所展示的重 ...
- SpringMvc 系统启动时加载数据到内存中
SpringMvc 系统启动时加载数据到内存中 学习了:http://blog.csdn.net/newstruts/article/details/18668269 https://www.cnbl ...
- c语言字母是怎么存储,C语言之数据在内存中的存储
C语言之数据在内存中的存储 在我们学习此之前,我们先来回忆一下C语言中都有哪些数据类型呢? 首先我们来看看C语言中的基本的内置类型: char //字符数据类型 short //短整型 int //整 ...
- C语言——深度剖析数据在内存中的存储
大家好!我是保护小周ღ,本期为大家带来的是深度剖析数据在内存中的存储,不知道,大家学了这么久C语言,有没有想过一个问题,我们在程序设计中的数据是怎么在计算机中存储的?我们都知道 一个整型数据 int ...
- 梦开始的地方 —— C语言数据在内存中的存储(整形+浮点型)
文章目录 整形在内存中的存储 1. 数值类型的基本分类 2. 整形在内存中的存储 1. 原码.反码.补码 2. 内存中为什么要存放补码? 3. 大小端存储 4. 无符号有符号数练习 5. 有符号数无符 ...
- C语言--数据在内存中的存储
目录 一.数据类型详细介绍 1.数据类型介绍 2.数据类型基本归类 二.整形在内存中的存储:原码.反码.补码 三.大小端字节序介绍及其判断 练习题 四.浮点型在内存中的存储解析 一.数据类型详细介绍 ...
- 【C进阶】第十篇——数据在内存中的存储
数据类型的介绍 类型的基本归类 整型在内存中的存储 原码,反码,补码 大小端介绍 什么是大小端 为什么有大端和小端? 判断当前机器的字节序 浮点型在内存中的存储 例题引入 浮点数的存 浮点数的取 浮点 ...
最新文章
- iOS中JS 与OC的交互(JavaScriptCore.framework)
- VS2015占内存大吗?_手机是6GB运行内存,何为后台却显示3G内存?
- Django rest framework 基础
- 几分钟了解阿里云云服务器ECS
- 一起玩树莓派3+使用Gitlab搭建专业Git服务
- python实现ping命令_[小菜随笔]python tkinter实现简单的ping命令
- matlab 万年历,matlab时钟万年历 matlab时钟万年历(附word说明文档): 
程序主要 联合开发网 - pudn.com...
- 微信小程序 request请求封装
- linux内核input子系统解析【转】
- Laravel 队列发送邮件
- python写代码酷炫插件_使用 Python 制作酷炫多彩的 Jenkins 插件词云图
- 【密码学】抽象代数——群(学习笔记)
- 视频传输协议总结、码率
- Java程序员面试笔试宝典答案,基于HTML
- 不评价别人的生活,是一个人最基本的修养 // 转
- 记录CTF命令执行练习中遇到的几道题(一些PHP命令过滤的绕过方法)
- Fluent中的各种初始化
- UNR#2 梦中的题面 HDU6056
- 华为畅享二十Android是,华为畅享20 Pro智慧护眼怎么样?华为畅享20 Pro智慧护眼详解...
- TypeScripe中那些奇奇怪怪的符号?!??
热门文章
- Max_user_connections 与Max_connections 与max_connect_errors
- 图像特征点—SIFT特征点
- python制作图形化界面_python图形化界面设计(wxpython)一布局管理
- linux命令find的功能,linux find命令使用一览表
- python删除字典中性别为男_python初学者,用python3实现基本的学生管理系统代码实例...
- qfdw.xyz sq.php,GitHub - STORMSQ/sqphp: 練習用框架,使用PHP搭建
- java正则 group_Java正则表达式,分组 group()、groupCount()
- C语言 数组(做个笔记)
- linux的android工作室,Android工作室在启动时抛出错误,linux机器
- 力扣(LeetCode)刷题,简单题(第22期)