OpenCV:从RGB图像中提取颜色通道

时间:2019-07-11 04:18:05

标签: python numpy opencv scikit-learn computer-vision

我正在尝试使用sklearn使用均值平移聚类对彩色图像进行分割。 我已将图像读取到一个numpy数组中,但是我想提取每个颜色通道(R,G,B),以便可以将每个颜色通道用作分类的变量。

我在线找到了以下代码,该代码提取了以numpy数组表示的图像的RGB颜色通道。

  red = image[:,:,2]
  green = image[:,:,1]
  blue = image[:,:,0]

但是,我不明白这段代码是如何工作的。 2、1和0是什么意思?任何见解都会受到赞赏。

1 个答案:

答案 0 :(得分:2)

正常图片中将有3层,红色,绿色和蓝色。

通过工具(例如open-cv)读取图片时,它将为您返回一个形状为numpy的数组(width_image x length_image x通道)。

通道的排列取决于您使用的通道,如果您通过open-cv进行读取,则首先是蓝色,然后是绿色,然后是红色,否则,如果您使用matplotlib.pyplot.imread,它将是红色-绿色-蓝色。

之所以这样写代码,是因为他们通过open-cv读取图片