内容简介:代码地址:一个图像可以有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(二):图片通道及色彩空间转化》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- js的类型转化三两事儿
- Golang 并发,有缓存通道,通道同步案例演示
- archTIS:将数据安全转化为经济增长
- 如何将JavaScript转化成Swift?(一)
- 科普 | 菜鸟学习状态通道,Part-2:App 定制型状态通道
- python3 第十章 - 如何进行进制转化
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
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》 这本书的介绍吧!