我正在尝试使用 sklearn 使用 Mean-Shift 聚类来分割彩色图像。 我已将图像读入 numpy 数组,但是我想提取每个颜色 channel (R、G、B),以便我可以将每个颜色 channel 用作分类变量。
我在网上找到了以下代码,它提取图像的 RGB 颜色 channel ,该图像表示为 numpy 数组。
red = image[:,:,2]
green = image[:,:,1]
blue = image[:,:,0]
但是,我不明白这段代码是如何工作的。 2、1、0是什么意思?任何见解都值得赞赏。
最佳答案
一张普通的图片有 3 层,红绿蓝。
当您通过工具(例如 open-cv)读取图片时,它将返回一个形状为(宽度图像 x 长度图像 x channel )的 numpy 数组。
channel 的排列取决于您使用的内容,如果您使用 open-cv 读取,它将是蓝色先,然后是绿色,然后是红色,否则如果您使用 matplotlib.pyplot.imread 它将是红-绿-蓝。
代码是这样写的,因为他们通过open-cv读取图片
关于python - OpenCV:从 RGB 图像中提取颜色 channel ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56981563/