Python如何将RGB图像转换为Pytho灰度图像?

我正尝试使用matplotlib读取RGB图像并将其转换为灰度。
在matlab中,我使用这个:


1

img = rgb2gray(imread(‘image.png‘));

matplotlib tutorial中他们没有覆盖它。他们只是在图像中阅读


1

2

import matplotlib.image as mpimg

img = mpimg.imread(‘image.png‘)

然后他们切片数组,但是这不是从我所了解的将RGB转换为灰度。


1

lum_img = img[:,:,0]

编辑:
我发现很难相信numpy或matplotlib没有内置函数来从rgb转换为灰色。这不是图像处理中的常见操作吗?
我写了一个非常简单的函数,它可以在5分钟内使用imread导入的图像。这是非常低效的,但这就是为什么我希望内置专业实施。
塞巴斯蒂安改善了我的功能,但我仍然希望找到内置的一个。
matlab的(NTSC / PAL)实现:


1

2

3

4

5

6

7

8

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


1

2

3

from PIL import Image

img = Image.open(‘image.png‘).convert(‘LA‘)

img.save(‘greyscale.png‘)

使用matplotlib和the formula


1

Y‘ = 0.299 R + 0.587 G + 0.114 B

你可以这样做:


1

2

3

4

5

6

7

8

9

10

11

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()

时间: 2024-11-12 14:31:24

Python如何将RGB图像转换为Pytho灰度图像?的相关文章

python库skimage 将针对灰度图像的滤波器用于RGB图像 逐通道滤波;转换为HSV图像滤波

有许多滤波器设计用于灰度图像但是不能用于彩色图像.为了简化创建函数,使其能够用于RGB图像,scikit-image图像处理库提供了adapt_rgb装饰器. 实际使用adapt_rgb装饰器,你必须决定如何调整RGB图像以使灰度滤波器能够用于RGB图像.有两个预定义的处理方式: "每个通道": 传输RGB的每个通道给滤波器,处理后,将它们按照rgb顺序整合到RGB图像. "hsv_value": 转换RGB图像到HSV图像并传输明度通道的值给滤波器.滤波的结果被插

OpenCV C++如何使RGB图像变为灰度图像

http://m.blog.csdn.net/blog/u014395105/41308979 最近在研究如何用C++来处理图像,而不使用封装好的OpenCV代码,这样能够更好的了解OpenCV的内部原理. 在网上搜了一些关于C++代码来实现RGB(彩色)图像转换为 gray(灰度)的原理以及代码,可读性较差,所以自己整理了一下,若需转载,请标明出处,谢谢! 一.学习cvtColor函数 void cvCvtColor( const CvArr* src, CvArr* dst, int cod

RGB图像转为灰度图

最后结论: Grey = (R*38 + G*75 + B*15)>> 7 代码 #include <cv.h> #include <highgui.h> using namespace cv; int main(){ Mat src= imread("C:\\Users\\Poplar\\Pictures\\ff.jpg"); Matgrey(src.rows, src.cols, CV_8UC1, Scalar(0)); for (inty =

基于FPGA的RGB图像转灰度图像算法实现

一.前言 最近学习牟新刚编著<基于FPGA的数字图像处理原理及应用>的第六章直方图操作,由于需要将捕获的图像转换为灰度图像,因此在之前代码的基础上加入了RGB图像转灰度图像的算法实现. 2020-02-29 10:38:40 二.RGB图像转灰度图像算法原理 将彩色图像转换为灰度图像的方法有两种,一个是令RGB三个分量的数值相等.输出后便可以得到灰度图像,另一种是转换为YCbCr格式,将Y分量提取出来,YCbCr格式中的Y分量表示的是图 像的亮度和浓度,所以只输出Y分量,得到图像就是灰度图像.

对RGB图像进行灰度化(方法 + 代码)

对RGB图像进行灰度化,通俗点说就是对图像的RGB三个分量进行加权平均得到最终的灰度值.最常见的加权方法如下: 1)Gray=B:Gray=G:Gray=R 2)Gray=max(B+G+R) 3)Gray=(B+G+R)/3 4)Gray= 0.072169B+ 0.715160G+ 0.212671R 5)Gray= 0.11B+ 0.59G+ 0.3R 第一种为分量法,即用RGB三个分量的某一个分量作为该点的灰度值 第二种方法为最大值法,将彩色图像中的三分量亮度的最大值作为灰度图的灰度值

c语言实现BMP图像转换为灰度图

当初是自己要装X,非要用c来写信息隐藏作业,装了X,就得付出实践.查了好久资料,到期末才把作业交了,这里总结一下. 这道题是将真彩图转换为灰度图. 关于BMP文件结构,这是困扰了我好久的问题,上网查了很久图片的知识才弄明白 BMP文件包括以下几部分(具体结构在程序中说明): 位图文件头 位图信息头 调色板 位图数据 结构体内存对齐原则 每个成员存储的起始位置要从该成员大小的整数倍开始 成员是结构体时相对与起始偏移是其内部最大元素大小的整数倍 结构体的总大小是其内部最大成员的整数倍 因此在定义头结

Python文件夹下图像数据可视化

Python文件夹下图像数据可视化 import matplotlib.pyplot as plt import matplotlib.image as mpimg import numpy as np   import urllib2 import urllib import os import shutil   subdir= "/7" homedir = os.getcwd() + subdir # "/home/haoyou/Dev/last_caffe_with_s

Python将JSON格式数据转换为SQL语句以便导入MySQL数据库

前文中我们把网络爬虫爬取的数据保存为JSON格式,但为了能够更方便地处理数据,我们希望把这些数据导入到MySQL数据库中.phpMyadmin可以把MySQL数据库中的数据导出为JSON格式文件,但却不能把JSON格式文件导入到MySQL数据库.为了实现这个目标,可以编写Python脚本将JSON格式数据转换为SQL语句以便导入MySQL数据库. JSON文件tencent.json部分内容: {"recruitNumber": "1", "name&qu

2、将图像转换为点云

1.它是后面处理地图的基础,最简单的点云地图就是把不同位置的点云进行拼接得到的. 2.由于从RGB-D相机里可以采集到两种形式的数据:彩色图像和深度图像.如果有kinect和ros,那么可以运行如下 roslaunch openni_launch openni.launch 来使Kinect工作.如果PC机连上Kinect,那么彩色图像和深度图像会发布在/camera/rgb/image_color 和 /camera/depth_registered/image_raw 中:可以通过运行如下