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实现以时间换空间的缓存替换算法
Feb 19 Python
Python正则表达式教程之三:贪婪/非贪婪特性
Mar 02 Python
python 简单的绘图工具turtle使用详解
Jun 21 Python
Python内置模块hashlib、hmac与uuid用法分析
Feb 12 Python
Python中数组,列表:冒号的灵活用法介绍(np数组,列表倒序)
Apr 18 Python
Sanic框架基于类的视图用法示例
Jul 18 Python
对Python使用mfcc的两种方式详解
Jan 09 Python
python定时检测无响应进程并重启的实例代码
Apr 22 Python
详解Python中正则匹配TAB及空格的小技巧
Jul 26 Python
python连接打印机实现打印文档、图片、pdf文件等功能
Feb 07 Python
利用Python批量识别电子账单数据的方法
Feb 08 Python
利用python做表格数据处理
Apr 13 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下读取文本文件的代码
2008/07/02 PHP
PHP程序61条面向对象分析设计的经验小结
2008/11/12 PHP
推荐一款PHP+jQuery制作的列表分页的功能模块
2014/10/14 PHP
yii实现CheckBox复选框在同一行显示的方法
2014/12/03 PHP
我整理的PHP 7.0主要新特性
2016/01/07 PHP
php微信浏览器分享设置以及回调详解
2016/08/01 PHP
php数据库操作model类(使用__call方法)
2016/11/16 PHP
PHP FileSystem 文件系统常用api整理总结
2019/07/12 PHP
HTML Dom与Css控制方法
2010/10/25 Javascript
jquery.fileEveryWhere.js 一个跨浏览器的file显示插件
2011/10/24 Javascript
extjs表格文本启用选择复制功能具体实现
2013/10/11 Javascript
js showModalDialog 弹出对话框的简单实例(子窗体)
2014/01/07 Javascript
jquery选择器大全 全面详解jquery选择器
2014/03/06 Javascript
JavaScript实现穷举排列(permutation)算法谜题解答
2014/12/29 Javascript
JavaScript操作Cookie详解
2015/02/28 Javascript
60行js代码实现俄罗斯方块
2015/03/31 Javascript
浅谈js对象的创建和对6种继承模式的理解和遐想
2016/10/16 Javascript
微信小程序新增的拖动组件movable-view使用教程
2017/05/20 Javascript
vue + element-ui实现简洁的导入导出功能
2017/12/22 Javascript
基于VuePress 轻量级静态网站生成器的实现方法
2018/04/17 Javascript
深入学习Vue nextTick的用法及原理
2019/10/08 Javascript
React实现轮播效果
2020/08/25 Javascript
[55:02]2014 DOTA2国际邀请赛中国区预选赛 HGT VS Orenda
2014/05/21 DOTA
Python中在for循环中嵌套使用if和else语句的技巧
2016/06/20 Python
python实现的发邮件功能示例
2019/09/11 Python
升级keras解决load_weights()中的未定义skip_mismatch关键字问题
2020/06/12 Python
python绘图pyecharts+pandas的使用详解
2020/12/13 Python
CSS3 三维变形实现立体方块特效源码
2016/12/15 HTML / CSS
意大利奢侈品多品牌集合店:TheDoubleF
2019/08/24 全球购物
北京一家公司的.net开发工程师笔试题
2012/04/17 面试题
临床医学专业毕业生的自我评价
2013/10/17 职场文书
工商管理专业应届生求职信
2013/11/04 职场文书
歌颂祖国的演讲稿
2014/05/04 职场文书
自我介绍演讲稿范文
2014/08/21 职场文书
个人股份转让协议书范本
2015/01/28 职场文书
MySQL中TIMESTAMP类型返回日期时间数据中带有T的解决
2022/12/24 MySQL