如何使用Scikit-Image库从RGB图像中提取绿色通道?
image
image-processing
python
5
0

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

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

我试图提取绿色通道为:

green_image = rgb_image[:,:,1]

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

imsave("green_output_image.jpg",green_image)

我得到的图像看起来并不是真的只有绿色!

参考资料:
Stack Overflow
收藏
评论
共 1 个回答
高赞 时间 活跃

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

如果我正确解释了您的意思,则希望将每种颜色的“绿色”形象化。在这种情况下,请将红色和蓝色通道都设置为零,并保持绿色通道完整。

所以:

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

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

收藏
评论
新手导航
  • 社区规范
  • 提出问题
  • 进行投票
  • 个人资料
  • 优化问题
  • 回答问题

关于我们

常见问题

内容许可

联系我们

@2020 AskGo
京ICP备20001863号