您的第一个代码块: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='png')

new_img = cv2.imread('image_gray.png')

print('Loaded image shape:', new_img.shape)

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

避免这种情况的一种方法是将图像保存为numpy文件,或者确实将一批图像保存为numpy文件:np.save('np_image.npy', img_gray)

new_np = np.load('np_image.npy')

print('new_np shape:', new_np.shape)

输出:new_np shape: (196, 256)

另一种方法是保存灰度png(使用imsave),但只读取第一个波段:finalimg = cv2.imread('image_gray.png',0)

print('finalimg image shape:', finalimg.shape)

输出:finalimg image shape: (196, 256)

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

  1. python修改rgb红色通道为黑白_opencv-python 简单的RGB通道分别二值化(提取特定颜色)...

    本文借鉴了https://blog.csdn.net/sinat_40661696/article/details/80142217 这位老哥最后合并色彩时忽略了一个问题 cv中RGB的顺序是BGR ...

  2. matlab批量生成灰度图像_科学网—matlab彩色图像的批处理转换为灰度、二值和主成分图图像 - 金秀良的博文...

    这段代码主要用来进行图像的批处理转换为灰度.二值和主成分图图像,希望给大家借鉴.其中 RGB to bw可以直接实现,但是效果不好,所以先用RGB to gray,之后再gray to bw.RGB ...

  3. python修改xml标签的值_对python修改xml文件的节点值方法详解

    这是我的xml文件结构 <?xml version='1.0' encoding='utf-8'?> JPEGImages train_2018-05-08_1000.jpg D:\all ...

  4. css如何把图片设置为黑白_使用CSS将图像转换为黑白图像

    css如何把图片设置为黑白 Desaturating a color image couldn't be simpler with CSS. The filter is typically appli ...

  5. 用Python编写录屏程序将播放的视频用截屏方法转换为多帧图像编辑后保存为GIF格式动图文件

    有时编写游戏后发博文,为使读者有一个直观的游戏效果,会把游戏运行动画转换GIF格式动图发到博文中.本文介绍如何用python PIL库ImageGrab.grab()函数截屏,编写录屏程序,将视频转换 ...

  6. python修改文件内容最后一行_关于python:如何修改文件的最后一行?

    我文件的最后一行是: 29-dez,40, 号 如何修改该行,使其显示: 29-Dez,40,90,100,50 号 注意:我不想写新行.我想在29-Dez,40,后面加一行新值. 我是Python的 ...

  7. python修改散点图中点的颜色_更改散点图中不同虚拟值的点的颜色 - python

    在我的数据集中,我有一个Price列用于房价,还有5个虚拟列用于城市中的不同位置.我要做的是用不同的颜色在散点图上显示数据点. 例如,在一个包含所有房屋价格的散点图上,我想要: 当dummy1表示房屋 ...

  8. python修改列表指定位置的_第三章 列表简介

    列表让你能够在一个地方存储成组的信息,其中可以只包含几个元素,也可以包含数百万个元素.列表是新手可直接使用的最强大的Python功能之一,它融合了众多重要的编程概念. 一.列表是什么 列表由一系列按特 ...

  9. python修改散点图中点的颜色_更改matplotlib中散点图点的颜色

    我对Python图形可视化工具完全陌生,我正在尝试显示一个散点图.问题是我似乎无法获得与灰度值不同的点的颜色.这是我的代码:cmap = cm.get_cmap('Spectral') cat_len ...

最新文章

  1. Mysql商品和图片表_【mysql】数据库设计模式:多个图片怎么和商品关联
  2. python观察日志(part9)--数据库与pickle模块
  3. 童话镇计算机乐谱,童话镇简谱(歌词)-陈一发演唱-桃李醉春风记谱
  4. 自动让钱生钱方法100%安全稳定
  5. bp 神经网络 优点 不足_深度学习之BP神经网络--Stata和R同步实现(附Stata数据和代码)
  6. Windows server 2012 新功能试用---- powershell 3.0 进程和服务的操作
  7. 隐藏nginx 版本号信息(转)
  8. [线筛五连]线筛欧拉函数
  9. 工程模式写入imei_开发初期IMEI号的写入
  10. C语言入门-跑步问题
  11. 家用计算机的计算速度,计算机CPU运算速度是多少
  12. 在代码里面如何使用workman
  13. 操作系统 考研习题 详细解析(1)
  14. 计算机网络---应用层
  15. 【资源】Oculus meta Quest 2游戏下载VR一体机游戏资源合集下载教程Pro
  16. python 录音_python实现录音功能(可随时停止录音)
  17. 湖南省第八届大学生计算机程序设计竞赛获奖名单
  18. Linux下c语言文本方式文件读取
  19. 在windows环境下安装pycocotools
  20. postgresql 字符串函数

热门文章

  1. Kotlin的when、if 和循环语句
  2. ​Audified ToneSpot Electric Pro 电吉他效果器评测:便捷、全能!
  3. linux查看edid信息,EDID 信息
  4. C#Assembly的使用
  5. 【RuoYi-Vue-Plus】学习笔记 46 - Redisson(十二)布隆过滤器 BloomFilter 简单分析
  6. 聚类算法中的K均值聚类算法(K-Means clustering)
  7. openfire4.5.2安装部署与基础设置
  8. Low Power Design in SoC Using Arm IP
  9. 探究Visual Studio中的乱码问题
  10. Could not load type ‘System.ServiceModel.Activation.HttpModule‘ from assembly ‘System.ServiceModel