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定时检查启动某个exe程序适合检测exe是否挂了
Jan 21 Python
python实现给数组按片赋值的方法
Jul 28 Python
详解JavaScript编程中的window与window.screen对象
Oct 26 Python
Linux中Python 环境软件包安装步骤
Mar 31 Python
python分析作业提交情况
Nov 22 Python
对python多线程与global变量详解
Nov 09 Python
对python 判断数字是否小于0的方法详解
Jan 26 Python
Python pandas DataFrame操作的实现代码
Jun 21 Python
Python Web框架之Django框架cookie和session用法分析
Aug 16 Python
Python接口测试结果集实现封装比较
May 01 Python
Python函数__new__及__init__作用及区别解析
Aug 31 Python
pandas 按日期范围筛选数据的实现
Feb 20 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
PHP 5.0对象模型深度探索之属性和方法
2008/03/27 PHP
如何使用PHP批量去除文件UTF8 BOM信息
2013/08/05 PHP
19个超实用的PHP代码片段
2014/03/14 PHP
PHP开源开发框架ZendFramework使用中常见问题说明及解决方案
2014/06/12 PHP
thinkphp中的多表关联查询的实例详解
2017/10/12 PHP
关于Javascript 的 prototype问题。
2007/01/03 Javascript
关于jquery ajax 调用带参数的webservice返回XML数据一个小细节
2012/07/31 Javascript
Javascript 浮点运算的问题分析与解决方法
2013/08/27 Javascript
javascript模拟地球旋转效果代码实例
2013/12/02 Javascript
通过pjax实现无刷新翻页(兼容新版jquery)
2014/01/31 Javascript
使用变量动态设置js的属性名
2014/10/19 Javascript
js与C#进行时间戳转换
2014/11/14 Javascript
JavaScript中数组的合并以及排序实现示例
2015/10/24 Javascript
JavaScript操作URL的相关内容集锦
2015/10/29 Javascript
探讨:JavaScript ECAMScript5 新特性之get/set访问器
2016/05/05 Javascript
ajax级联菜单实现方法实例分析
2016/11/28 Javascript
Angular2入门教程之模块和组件详解
2017/05/28 Javascript
nodeJS实现路由功能实例代码
2017/06/08 NodeJs
vuejs 单文件组件.vue 文件的使用
2017/07/28 Javascript
10个最优秀的Node.js MVC框架
2017/08/24 Javascript
vue数据操作之点击事件实现num加减功能示例
2019/01/19 Javascript
layui多iframe页面控制定时器运行的方法
2019/09/05 Javascript
H5+css3+js搭建带验证码的登录页面
2020/10/11 Javascript
Python获取远程文件大小的函数代码分享
2014/05/13 Python
python打印异常信息的两种实现方式
2019/12/24 Python
jupyter notebook远程访问不了的问题解决方法
2021/01/11 Python
html5 CSS过度-webkit-transition使用介绍
2013/07/02 HTML / CSS
GEOX鞋美国官方网站:意大利会呼吸的鞋
2017/07/12 全球购物
小学教师个人先进事迹材料
2014/05/17 职场文书
校本课程教学计划
2015/01/19 职场文书
2015年小学辅导员工作总结
2015/05/27 职场文书
闪闪的红星观后感
2015/06/08 职场文书
休学证明范本
2015/06/19 职场文书
女性励志书籍推荐
2019/08/19 职场文书
python实现调用摄像头并拍照发邮箱
2021/04/27 Python
JavaScript数组 几个常用方法总结
2021/11/11 Javascript