python - 如何使用 Scikit-Image 库从 Python 中的 RGB 图像中提取绿色 channel ?

标签 python image image-processing scikit-image imread

我对 Python 中用于图像处理的 scikit-image (skimage) 库非常陌生(几分钟前开始!)。我使用 imread 读取了 numpy.ndarray 中的图像文件。该数组是三维的,其中第三维的大小为 3(即图像的红色、绿色和蓝色分量各一个)。

rgb_image = imread("input_rgb_image.jpg")
rgb_image.shape # gives (1411L, 1411L, 3L)

我尝试将绿色 channel 提取为:

green_image = rgb_image[:,:,1]

但是当我将这个图像矩阵写入输出文件时:

imsave("green_output_image.jpg",green_image)

我得到的图像看起来不仅是绿色的!

最佳答案

您要提取的只是一个 channel ,它会显示每个像素有多少绿色。这最终将可视化为灰度图像,其中较暗的像素表示这些点处没有太多“绿色”,而较亮的像素表示这些点处有大量“绿色”。

如果我正确地解释了您的意思,您希望将每种颜色的“绿色”可视化。在这种情况下,将红色和蓝色 channel 都设置为零,并保持绿色 channel 不变。

所以:

green_image = rgb_image.copy() # Make a copy
green_image[:,:,0] = 0
green_image[:,:,2] = 0

请注意,我已经复制了您的原始图像并更改了 channel ,而不是修改原始图像,以备不时之需。但是,如果您只想提取绿色 channel 并将其可视化为我上面提到的灰度图像,那么使用 green_image 变量的设置执行上述操作就可以了。

关于python - 如何使用 Scikit-Image 库从 Python 中的 RGB 图像中提取绿色 channel ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29718877/

相关文章:

python - 如何在 scipy 中以 cgs 单位获取物理常数?

python - 如何在 kubernetes 容器中安装某物

css - 使用 CSS 向上和/或向下缩放 div 内的图像以适应图像的最大边

python - skimage 模块缺乏记录的功能

python - heroku 上的 Flask 项目返回 500 内部服务器错误

带有特殊字符的 Python 正则表达式

ios - Swift 3 - 从图库中获取所有照片

MATLAB 中的图像转置

python - 如何使用 openCV python 从文本文档中删除水印?

c++ - 当我使用opencv函数cvNorm(image,NULL,CV_L2)时,返回异常结果,为什么?