如何在OpenCV Python中将图像拆分成不同的色彩通道?

如何在OpenCV Python中将图像拆分成不同的色彩通道?

彩色图像由三个色彩通道-红色,绿色和蓝色组成。可以使用 cv2.split() 函数拆分这些色彩通道。让我们看看将图像拆分成不同颜色通道的步骤-

  • 导入所需的库。在以下所有示例中,所需的Python库是 OpenCV 。请确保您已安装它。

  • 使用 cv2.imread() 方法读取输入图像。指定带有图像类型(即png或jpg)的图像的完整路径

  • 在输入图像 img 上应用 cv2.split() 函数。它返回蓝色,绿色和红色通道像素值作为numpy数组。将这些值分配给变量。 blue,green和red。

blue,green,red = cv2.split(img)
  • 显示三个通道作为灰度图像。

让我们看一些例子以清楚地理解。

我们将使用以下图像作为 输入文件 在下面的例子中−

如何在OpenCV Python中将图像拆分成不同的色彩通道?

示例

在此示例中,我们将输入图像拆分为其组成的颜色通道:蓝色,绿色和红色。我们还将这些颜色通道显示为灰度图像。

#导入所需的库
import cv2

# 读取输入彩色图像
img = cv2.imread('bgr.png')

# 拆分蓝色、绿色和红色色彩通道
blue,green,red = cv2.split(img)

# 显示三通道
cv2.imshow('蓝色通道', blue)
cv2.waitKey(0)
cv2.imshow('绿色通道', green)
cv2.waitKey(0)
cv2.imshow('红色通道', red)
cv2.waitKey(0)
cv2.destroyAllWindows()

输出

当您运行上面的Python程序时,它将产生以下 三个输出窗口 ,每个窗口都显示为灰度图像的彩色通道(蓝色,绿色和红色)。

如何在OpenCV Python中将图像拆分成不同的色彩通道?

如何在OpenCV Python中将图像拆分成不同的色彩通道?

如何在OpenCV Python中将图像拆分成不同的色彩通道?

示例

在此示例中,我们将输入图像拆分为其组成的颜色通道:蓝色,绿色和红色。我们还将这些颜色通道显示为彩色图像(BGR)。

# 导入必要的库
import cv2
import numpy as np

# 读取输入的彩色图像
img = cv2.imread('bgr.png')

# 分离蓝色、绿色和红色通道
blue,green,red = cv2.split(img)

# 定义所有像素值为0的通道
zeros = np.zeros(blue.shape, np.uint8)

# 合并通道以获得BGR图像
blueBGR = cv2.merge([blue,zeros,zeros])
greenBGR = cv2.merge([zeros,green,zeros])
redBGR = cv2.merge([zeros,zeros,red])

# 将三个蓝色、绿色和红色通道显示为BGR图像
cv2.imshow('Blue Channel', blueBGR)
cv2.waitKey(0)
cv2.imshow('Green Channel', greenBGR)
cv2.waitKey(0)
cv2.imshow('Red Channel', redBGR)
cv2.waitKey(0)
cv2.destroyAllWindows()

输出

运行上述Python程序时,将会产生下面的 三个输出窗口 每个窗口显示一个颜色通道(蓝色、绿色和红色)的彩色图像。

如何在OpenCV Python中将图像拆分成不同的色彩通道?

如何在OpenCV Python中将图像拆分成不同的色彩通道?

如何在OpenCV Python中将图像拆分成不同的色彩通道?

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

Python OpenCV