Python 将RGB图像转换为Pytho灰度图像的实例


Posted in Python onNovember 14, 2017

问题:

我正尝试使用matplotlib读取RGB图像并将其转换为灰度。

在matlab中,我使用这个:

img = rgb2gray(imread('image.png'));

在matplotlib tutorial中他们没有覆盖它。他们只是在图像中阅读

import matplotlib.image as mpimg
img = mpimg.imread('image.png')

然后他们切片数组,但是这不是从我所了解的将RGB转换为灰度。

lum_img = img[:,:,0]

编辑:

我发现很难相信numpy或matplotlib没有内置函数来从rgb转换为灰色。这不是图像处理中的常见操作吗?

我写了一个非常简单的函数,它可以在5分钟内使用imread导入的图像。这是非常低效的,但这就是为什么我希望内置专业实施。

塞巴斯蒂安改善了我的功能,但我仍然希望找到内置的一个。

matlab的(NTSC / PAL)实现:

import numpy as np
 
def rgb2gray(rgb):
 
 r, g, b = rgb[:,:,0], rgb[:,:,1], rgb[:,:,2]
 gray = 0.2989 * r + 0.5870 * g + 0.1140 * b
 
 return gray

回答:

如何使用PIL

from PIL import Image
img = Image.open('image.png').convert('LA')
img.save('greyscale.png')

使用matplotlib和the formula

Y' = 0.299 R + 0.587 G + 0.114 B

你可以这样做:

import numpy as np
import matplotlib.pyplot as plt
import matplotlib.image as mpimg
 
def rgb2gray(rgb):
 return np.dot(rgb[...,:3], [0.299, 0.587, 0.114])
 
img = mpimg.imread('image.png') 
gray = rgb2gray(img) 
plt.imshow(gray, cmap = plt.get_cmap('gray'))
plt.show()

以上这篇Python 将RGB图像转换为Pytho灰度图像的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python 的 Socket 编程
Mar 24 Python
python中私有函数调用方法解密
Apr 29 Python
windows10系统中安装python3.x+scrapy教程
Nov 08 Python
Python 实现数据库更新脚本的生成方法
Jul 09 Python
pyttsx3实现中文文字转语音的方法
Dec 24 Python
Python使用字典实现的简单记事本功能示例
Aug 15 Python
Python SQLAlchemy入门教程(基本用法)
Nov 11 Python
python如何使用socketserver模块实现并发聊天
Dec 14 Python
Python处理PDF与CDF实例
Feb 26 Python
Python Pillow(PIL)库的用法详解
Sep 19 Python
详解Python描述符的工作原理
Jun 11 Python
Python自动化测试PO模型封装过程详解
Jun 22 Python
人机交互程序 python实现人机对话
Nov 14 #Python
python密码错误三次锁定(实例讲解)
Nov 14 #Python
Python如何快速上手? 快速掌握一门新语言的方法
Nov 14 #Python
python+opencv实现的简单人脸识别代码示例
Nov 14 #Python
解读! Python在人工智能中的作用
Nov 14 #Python
python利用有道翻译实现"语言翻译器"的功能实例
Nov 14 #Python
TensorFlow在MAC环境下的安装及环境搭建
Nov 14 #Python
You might like
东芝TOSHIBA RP-F11电路分析
2021/03/02 无线电
mysql 的 like 问题,超强毕杀记!!!
2007/01/18 PHP
PHP上传文件时文件过大$_FILES为空的解决方法
2013/11/26 PHP
PHP eval函数使用介绍
2013/12/08 PHP
ThinkPHP3.1新特性之对分组支持的改进与完善概述
2014/06/19 PHP
php+ajax无刷新分页实例详解
2015/12/07 PHP
Avengerls vs Newbee BO3 第一场2.18
2021/03/10 DOTA
JS获取浏览器版本及名称实现函数
2013/04/02 Javascript
jQuery实现级联菜单效果(仿淘宝首页菜单动画)
2014/04/10 Javascript
浅谈jquery.fn.extend与jquery.extend区别
2015/07/13 Javascript
jQuery实现标题有打字效果的焦点图代码
2015/11/16 Javascript
ztree获取选中节点时不能进入可视区域出现BUG如何解决
2015/12/03 Javascript
javascript弹出窗口中增加确定取消按钮
2016/06/24 Javascript
JavaScript正则表达式小结(test|match|search|replace|split|exec)
2016/12/08 Javascript
Zepto实现密码的隐藏/显示
2017/04/07 Javascript
JS实现unicode和UTF-8之间的互相转换互转
2017/07/05 Javascript
BootStrap中Table隐藏后显示问题的实现代码
2017/08/31 Javascript
Vue2.0系列之过滤器的使用
2018/03/01 Javascript
浅谈webpack组织模块的原理
2018/03/10 Javascript
Vue进度条progressbar组件功能
2018/04/17 Javascript
Node.js 的 GC 机制详解
2019/06/03 Javascript
原生JS实现记忆翻牌游戏
2020/07/31 Javascript
JavaScript语法约定和程序调试原理解析
2020/11/03 Javascript
JavaScript/TypeScript 实现并发请求控制的示例代码
2021/01/18 Javascript
[01:10:58]KG vs TNC 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
Pthon批量处理将pdb文件生成dssp文件
2015/06/21 Python
Python自动登录126邮箱的方法
2015/07/10 Python
Python实现PS滤镜特效之扇形变换效果示例
2018/01/26 Python
如何解决django-celery启动后迅速关闭
2019/10/16 Python
python颜色随机生成器的实例代码
2020/01/10 Python
html5新特性与用法大全
2018/09/13 HTML / CSS
师范生的个人求职信范文
2014/01/04 职场文书
科技节口号
2014/06/19 职场文书
2014年干部培训工作总结
2014/12/17 职场文书
保卫工作个人总结
2015/03/03 职场文书
鉴史问廉观后感
2015/06/10 职场文书