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实现k均值算法示例(k均值聚类算法)
Mar 16 Python
玩转python爬虫之正则表达式
Feb 17 Python
Python代码实现KNN算法
Dec 20 Python
python实现飞机大战
Sep 11 Python
pytorch 转换矩阵的维数位置方法
Dec 08 Python
python生成每日报表数据(Excel)并邮件发送的实例
Feb 03 Python
手把手教你Python yLab的绘制折线图的画法
Oct 23 Python
python脚本后台执行方式
Dec 21 Python
Python实现进度条和时间预估的示例代码
Jun 02 Python
解决运行django程序出错问题 'str'object has no attribute'_meta'
Jul 15 Python
用python实现一个简单的验证码
Dec 09 Python
简单介绍Python的第三方库yaml
Jun 18 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
vBulletin HACK----关于排版的两个HACK
2006/10/09 PHP
一个可以找出源代码中所有中文的工具
2006/10/25 PHP
CodeIgniter框架URL路由总结
2014/09/03 PHP
PHP配置把错误日志以邮件方式发送方法(Windows系统)
2015/06/23 PHP
php中使用websocket详解
2016/09/23 PHP
laravel实现图片上传预览,及编辑时可更换图片,并实时变化的例子
2019/11/14 PHP
了解jQuery技巧来提高你的代码(个人觉得那个jquery的手册很不错)
2012/02/10 Javascript
几种设置表单元素中文本输入框不可编辑的方法总结
2013/11/25 Javascript
js实现二代身份证号码验证详解
2014/11/20 Javascript
js+jquery常用知识点汇总
2015/03/03 Javascript
javascript如何实现暂停功能
2015/11/06 Javascript
基于JavaScript获取鼠标位置的各种方法
2015/12/16 Javascript
JavaScript知识点总结(十一)之js中的Object类详解
2016/05/31 Javascript
Vue2仿淘宝实现省市区三级联动
2020/04/15 Javascript
vue获取当前点击的元素并传值的实例
2018/03/09 Javascript
angularjs 动态从后台获取下拉框的值方法
2018/08/13 Javascript
微信小程序使用Vant Weapp组件库的方法步骤
2019/08/01 Javascript
JS实现放烟花效果
2020/03/10 Javascript
Python面向对象编程基础解析(二)
2017/10/26 Python
对python dataframe逻辑取值的方法详解
2019/01/30 Python
Python requests模块实例用法
2019/02/11 Python
python opencv摄像头的简单应用
2019/06/06 Python
Python3实现二叉树的最大深度
2019/09/30 Python
Django框架反向解析操作详解
2019/11/28 Python
PyTorch中的C++扩展实现
2020/04/02 Python
Django ORM 查询表中某列字段值的方法
2020/04/30 Python
大学生怎样进行自我评价
2013/12/07 职场文书
人力资源部培训专员岗位职责
2014/01/02 职场文书
大学生学期自我鉴定
2014/03/19 职场文书
机关门卫的岗位职责
2014/04/29 职场文书
爱我中华演讲稿
2014/05/20 职场文书
批评与自我批评范文
2014/10/15 职场文书
销售工作决心书
2015/02/04 职场文书
解决SpringBoot跨域的三种方式
2021/06/26 Java/Android
企业版Windows 11有哪些新功能? Win11适用于企业的功能介绍
2021/11/21 数码科技
10大幻兽系恶魔果实 蝙蝠果实上榜,第一自愈能力强
2022/03/18 日漫