python - OpenCV:从 RGB 图像中提取颜色 channel

标签 python numpy opencv scikit-learn computer-vision

我正在尝试使用 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/

相关文章:

c++ - 如何使用 OpenCV 旋转图像,并为边缘周围的间隙设置自定义颜色?

c++ - Boost.Python - 将 boost::python::object 作为参数传递给 python 函数?

python - Beautifulsoup 丢失节点

python - Python 的 os.path.relpath 的意外行为

python - 如何从数组中提取感兴趣的数字,同时将其与不同的数组进行比较?

python - Theano:如何获取元素为矩阵的 "matrix outer product"

python - 在 GTK+3 中滚动 WebKit2.Webkit 窗口

python - FFT 围绕特定频率的大量细节

opencv - 将视频从 Raspberry pi 流式传输到远程计算机上的 Opencv 应用程序

java - 如何上传OpenCV jar和opencv dll。文件到Heroku