在我们对图片进行处理时,往往需要对其进行彩色灰度之间的转换。Python拥有着很多的库可以实现这一功能。例如Opencv、PIL、Matplotlib等。本文将使用Matplotlib来实现这一功能,因为其转换的数据结构与Matlab更为相似。便于我们对图像的更进一步处理。
首先,我们知道RGB图像是由3通道构成的图像,也即是,每个像素点由3个(0-255,0-255,0-255)之间的数个构成。而灰度图像是单通道图像,每个像素点由1个(0-255)之间的数组成。因此,我们的找到它们之间的转换关系,就可以完成对其的转换,其转换公式如下:
Gray = R * 0.299 + G * 0.587 + B * 0.114
所以,根据上面的转换公式,我们就可以进行编写彩色转灰度程序了,具体代码如下:
import numpy as np
import matplotlib.image as mp
import matplotlib.pyplot as plt
#将彩色图像转为灰度图片
def rgb2gray(A):
#定义一个空列表
x = [