一起来学opencv(二):图片通道及色彩空间转化

栏目: 编程工具 · 发布时间: 5年前

内容简介:代码地址:一个图像可以有n个通道,n表示该图像每个像素点由几个数值组成,一个a×b的N通道图像,其图像矩阵实际上是n个b行a列的数字矩阵。常用的色彩空间:
该案例基于opencv4.x版本编写

代码地址: github.com/gudepeng/st…

1.通道(channels)

一个图像可以有n个通道,n表示该图像每个像素点由几个数值组成,一个a×b的N通道图像,其图像矩阵实际上是n个b行a列的数字矩阵。

2.色彩空间

常用的色彩空间:

  • bgr:3个通道
  • gray:灰度图,1个通道
  • bgra:4个通道,最后一个通道是透明度

3.色彩空间转换

gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
复制代码

cvtColor(src, code, dst=None, dstCn=None)

  • src:要转化的图片对象
  • code:转化的类型
  • dst:颜色映射类型
  • dstCn:输出的通道数,0为自动获取src的通道数

4.切分通道

img = cv2.imread("./img/opencv.jpg", cv2.IMREAD_COLOR)
(B, G, R) = cv2.split(img)
B1 = img[:, :, 0]
G1 = img[:, :, 1]
R1 = img[:, :, 2]
复制代码

split(m, mv=None)

  • m:要切分的图像

img[:, :, n]

  • n:第n个通道

5.合并通道

newimg = cv2.merge([B, G, R])
复制代码

merge(mv, dst=None)

  • mv:要合并的通道

6.获取图像的属性

(h, w, c) = img.shape
复制代码
  • h:图像的高
  • w:图像的宽
  • c:图像的通道数

7.创建矩阵

import numpy as np
zero = np.zeros(img.shape, dtype=np.uint8)
复制代码

zeros(shape, dtype=None, order='C') 创建个值全为0的矩阵

ones(shape, dtype=None, order='C') 创建个值全为1的矩阵

  • shape:要创建矩阵的规格
  • dtype:矩阵内值类型

8.拷贝通道

cv2.mixChannels([img], [zero], [0, 0, 1, 1, 2, 2])
复制代码

mixChannels(src, dst, fromTo)

  • src:要拷贝通道的图像对象列表
  • dst:要拷贝通道的图像对象列表
  • fromTo:从哪个通道拷贝到哪个通道去

以上所述就是小编给大家介绍的《一起来学opencv(二):图片通道及色彩空间转化》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Algorithms + Data Structures = Programs

Algorithms + Data Structures = Programs

Niklaus Wirth / Prentice Hall / 1975-11-11 / GBP 84.95

It might seem completely dated with all its examples written in the now outmoded Pascal programming language (well, unless you are one of those Delphi zealot trying to resist to the Java/.NET dominanc......一起来看看 《Algorithms + Data Structures = Programs》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具