python修改rgb红色通道为黑白_如何将RGB图像(3通道)转换为灰度(1通道)并保存?...

本文介绍了如何使用Python将RGB图像转换为灰度图像。通过取RGB三个通道的平均值来生成灰度图像,然后使用matplotlib和opencv进行保存和读取。在保存灰度图像时需要注意,imsave可能会保存为3通道,需要特殊处理。
摘要由CSDN通过智能技术生成

您的第一个代码块:import matplotlib.pyplot as plt

plt.imsave('image.png', image, format='png', cmap='gray')

这将图像保存为RGB,因为在向imsave提供RGB数据时忽略了cmap='gray'(请参见pyplot docs)。

您可以通过取三个波段的平均值,将数据转换为灰度,可以使用color.rgb2gray,也可以使用numpy:import numpy as np

from matplotlib import pyplot as plt

import cv2

img_rgb = np.random.rand(196,256,3)

print('RGB image shape:', img_rgb.shape)

img_gray = np.mean(img_rgb, axis=2)

print('Grayscale image shape:', img_gray.shape)

输出:RGB image shape: (196, 256, 3)

Grayscale image shape: (196, 256)

img_gray现在是正确的形状,但是如果使用plt.imsave保存它,它仍然会写入三个波段,每个像素的R==G==B。这是因为,我相信,一个PNG文件需要三(或四)个波段。警告:我不确定这一点:我希望得到纠正。plt.imsave('image_gray.png', img_gray, format&

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值