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

问题:

我正尝试使用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灰度图像的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • Python图像灰度变换及图像数组操作

    使用python以及numpy通过直接操作图像数组完成一系列基本的图像处理 numpy简介: NumPy是一个非常有名的 Python 科学计算工具包,其中包含了大量有用的工具,比如数组对象(用来表示向量.矩阵.图像等)以及线性代数函数. 数组对象可以实现数组中重要的操作,比如矩阵乘积.转置.解方程系统.向量乘积和归一化.这为图像变形.对变化进行建模.图像分类.图像聚类等提供了基础. 在上一篇python基本图像操作中,当载入图像时,通过调用 array() 方法将图像转换成NumPy的数组对象

  • python实现颜色rgb和hex相互转换的函数

    本文实例讲述了python实现颜色rgb和hex相互转换的函数.分享给大家供大家参考.具体分析如下: 下面的python代码提供了两个函数分别用来将rgb表示的颜色转换成hex值,hex转换成rgb,rgb为一个三个数的元祖,如(128,255,28),hex为数字876645 def hex2rgb(hexcolor): rgb = [(hexcolor >> 16) & 0xff, (hexcolor >> 8) & 0xff, hexcolor & 0

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

    问题: 我正尝试使用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] 编辑:

  • python、PyTorch图像读取与numpy转换实例

    Tensor转为numpy np.array(Tensor) numpy转换为Tensor torch.Tensor(numpy.darray) PIL.Image.Image转换成numpy np.array(PIL.Image.Image) numpy 转换成PIL.Image.Image Image.fromarray(numpy.ndarray) 首先需要保证numpy.ndarray 转换成np.uint8型 numpy.astype(np.uint8),像素值[0,255]. 同时灰

  • python opencv判断图像是否为空的实例

    如下所示: import cv2 im = cv2.imread('2.jpg') if im is None: print("图像为空") # cv2.imshow("ss", im) # cv2.waitKey(0) 以上这篇python opencv判断图像是否为空的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们.

  • Python+OpenCV实现将图像转换为二进制格式

    在学习tensorflow的过程中,有一个问题,tensorflow在训练的过程中读取的是二进制图像数据库文件,而不是图像文件,因此 在进行训练.测试之前需要将图像文件转换为二进制格式. 下面是我在ubuntu中使用python+OpenCV读取图像并转换为二进制格式文件的代码. #coding=utf-8 ''' Created on 2016年3月24日 使用Opencv读取图像将其保存为二进制格式文件,再读取该二进制文件,转换为图像进行显示 @author: hanchao ''' imp

  • Python实现计算图像RGB均值方式

    要求 存在一个文件夹内有若干张图像,需要计算每张图片的RGB均值,并计算全部图像的RGB均值. 代码 # -*- coding: utf-8 -*- """ Created on Thu Nov 1 10:43:29 2018 @author: Administrator """ import os import cv2 import numpy as np path = 'C:/Users/Administrator/Desktop/rgb'

  • Python实现RGB等图片的图像插值算法

    目录 前言 RGB彩色图像和数组理解 图片坐标对其 左对齐 中心对齐 临近插值算法 线性插值法 双线性插值 三种插值算法的综合使用 附件 前言 问题:我们在放大图片的过程中,放大的目标图像和原图图像之间会存在不同. 放大的基本思想: 第一步: 将目标图像进行缩小到原图像的尺寸,虚拟的将二者进行对重叠在一起,这样目标图像上面的像素点就和原图像上面的像素点并不是一一对应的. 第二步: 将目标图像与原图像的像素点进行建立一个映射关系,这个像素点的映射关系不是单一的像素映射,因为我们把图片存放在三维数组

  • python Opencv计算图像相似度过程解析

    这篇文章主要介绍了python Opencv计算图像相似度过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 一.相关概念 一般我们人区分谁是谁,给物品分类,都是通过各种特征去辨别的,比如黑长直.大白腿.樱桃唇.瓜子脸.王麻子脸上有麻子,隔壁老王和儿子很像,但是儿子下巴涨了一颗痣和他妈一模一样,让你确定这是你儿子. 还有其他物品.什么桌子带腿.镜子反光能在里面倒影出东西,各种各样的特征,我们通过学习.归纳,自然而然能够很快识别分类出新物品.

  • Python图像处理之图像融合与ROI区域绘制详解

    目录 一.图像融合 二.图像ROI区域定位 三.图像属性 (1)shape (2)size (3)dtype 四.图像通道分离及合并 (1)split()函数 (2)merge()函数 五.图像类型转换 六.总结 一.图像融合 图像融合通常是指多张图像的信息进行融合,从而获得信息更丰富的结果,能够帮助人们观察或计算机处理.图5-1是将两张不清晰的图像融合得到更清晰的效果图. 图像融合是在图像加法的基础上增加了系数和亮度调节量,它与图像的主要区别如下[1-3]: 图像加法:目标图像 = 图像1 +

  • Python图像处理之图像量化处理详解

    目录 一.图像量化处理原理 二.图像量化实现 三.图像量化等级对比 四.K-Means聚类实现量化处理 五.总结 一.图像量化处理原理 量化(Quantization)旨在将图像像素点对应亮度的连续变化区间转换为单个特定值的过程,即将原始灰度图像的空间坐标幅度值离散化.量化等级越多,图像层次越丰富,灰度分辨率越高,图像的质量也越好:量化等级越少,图像层次欠丰富,灰度分辨率越低,会出现图像轮廓分层的现象,降低了图像的质量.图8-1是将图像的连续灰度值转换为0至255的灰度级的过程[1-3]. 如果

  • Python实现PS图像明亮度调整效果示例

    本文实例讲述了Python实现PS图像明亮度调整效果.分享给大家供大家参考,具体如下: 这里用 Python 实现 PS 图像调整中的明度调整: 我们知道,一般的非线性RGB亮度调整只是在原有R.G.B值基础上增加和减少一定量来实现的,而PS的明度调整原理还得从前面那个公式上去找.我们将正向明度调整公式: RGB = RGB + (255 - RGB) * value / 255 转换为 RGB = (RGB * (255 - value) + 255 * value) / 255, 如果val

随机推荐