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中随机函数random用法实例
Apr 30 Python
使用Python脚本将Bing的每日图片作为桌面的教程
May 04 Python
python实现的简单RPG游戏流程实例
Jun 28 Python
Python模块包中__init__.py文件功能分析
Jun 14 Python
浅谈终端直接执行py文件,不需要python命令
Jan 23 Python
详解Python判定IP地址合法性的三种方法
Mar 06 Python
Python退火算法在高次方程的应用
Jul 26 Python
解决django服务器重启端口被占用的问题
Jul 26 Python
Python 线程池用法简单示例
Oct 02 Python
python与pycharm有何区别
Jul 01 Python
python更新数据库中某个字段的数据(方法详解)
Nov 18 Python
Python使用tkinter实现小时钟效果
Feb 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
Amazon Prime Video平台《无限住人 -IMMORTAL-》2020年开始TV放送!
2020/03/06 日漫
PHP获取类中常量,属性,及方法列表的方法
2009/04/09 PHP
php is_file()和is_dir()用于遍历目录时用法注意事项
2010/03/02 PHP
php中inlcude()性能对比详解
2012/09/16 PHP
php判断上传的Excel文件中是否有图片及PHPExcel库认识
2013/01/11 PHP
Javascript 写的简单进度条控件
2008/01/22 Javascript
jquery获得下拉框值的代码
2011/08/13 Javascript
JavaScript 基本概念
2015/01/20 Javascript
jQuery each函数源码分析
2016/05/25 Javascript
js判断复选框是否选中及选中个数的实现代码
2016/05/30 Javascript
javacript获取当前屏幕大小
2016/06/04 Javascript
jQuery子元素过滤选择器用法示例
2016/09/09 Javascript
js滚轮事件兼容性问题需要注意哪些
2016/11/15 Javascript
实例浅析js的this
2016/12/11 Javascript
javascript笔记之匿名函数和闭包
2017/02/06 Javascript
C#微信小程序服务端获取用户解密信息实例代码
2017/03/10 Javascript
vue通过cookie获取用户登录信息的思路详解
2018/10/30 Javascript
过滤器vue.filters的使用方法实现
2019/09/18 Javascript
用vue 实现手机触屏滑动功能
2020/05/28 Javascript
javascript实现多边形碰撞检测
2020/10/24 Javascript
django模型层(model)进行建表、查询与删除的基础教程
2017/11/21 Python
Python实现图片转字符画的代码实例
2019/02/22 Python
Python数据报表之Excel操作模块用法分析
2019/03/11 Python
详解python程序中的多任务
2020/09/16 Python
Python使用Turtle模块绘制国旗的方法示例
2021/02/28 Python
CSS3弹性盒模型开发笔记(三)
2016/04/26 HTML / CSS
css3 伪元素和伪类选择器详解
2014/09/04 HTML / CSS
html5音频_动力节点Java学院整理
2018/08/22 HTML / CSS
使用html5实现表格实现标题合并的实例代码
2019/05/13 HTML / CSS
HTML5 客户端数据库简易使用:IndexedDB
2019/12/19 HTML / CSS
adidas美国官网:adidas US
2016/09/21 全球购物
印尼购物网站:iLOTTE
2019/10/16 全球购物
学风建设演讲稿
2014/09/12 职场文书
2014年采购员工作总结
2014/11/18 职场文书
二手房购房意向书
2015/05/09 职场文书
解决linux下redis数据库overcommit_memory问题
2022/02/24 Redis