全国客服热线:4009929931
电子邮箱:info@dashen-tech.com
联系地址:
广州天河区沙太路85号金企科技园A302

OpenCV Python NumPy操作色彩通道

OpenCV Python NumPy操作色彩通道
9月 11, 2019 admin

本示例使用的OpenCV版本是:OpenCV 4.1.1
运行Python的编辑器:Jupyter notebook 6.0.0

示例目的

处理矩阵的通道,访问单个通道、交换通道和执行代数操作都在这篇教程中。

file

实现代码

1,加载所需要的库

import cv2, numpy as np
import matplotlib.pyplot as plt

2,显示加载的图片

# 这里我们把图像的矩阵元素数据类型转换成 float32 并除于255,缩放为0-1的数值
img = cv2.imread('dog.png').astype(np.float32) / 255
img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
plt.imshow(img)

2,把红色通道和蓝色通道互换

# 交换红色和蓝色通道
img[:, :, [0, 2]] = img[:, :, [2, 0]]
# 显示结果
plt.imshow(img)

file

在图片RGB模式下交互了蓝色和红色,那么就变成了BGR模式了。

3,把通道交换回来

img[:, :, [0, 2]] = img[:, :, [2, 0]]

4,以不同的方式缩放

# 矩阵中通道索引为0的数值乘于0.9,(即是通道R,红色,红色减少10%)
# 超出的数值在0和1之间进行剪切。
img[:, :, 0] = (img[:, :, 0] * 0.9).clip(0, 1)
# 矩阵中通道索引为1的数值乘于1.1,(即是通道G,绿色,绿色增加10%)
# 超出的数值在0和1之间进行剪切。
img[:, :, 1] = (img[:, :, 1] * 1.1).clip(0, 1)

#显示图像
plt.imshow(img)

最后输出的结果,可以看出图像是偏绿色的,如图:

file

程序说明

在图像的矩阵中,最后一个维度代表的是通道,本教程,主要是操作该维度。
NumPy为我们提供了非常简单的处理方法。

0 Comments

Leave a reply

您的电子邮箱地址不会被公开。