如何使用rgb在python中对图片进行灰度处理



我正在编写一个函数(稍后必须将其调用到主py文件中,在那里我获取rgb值,将其相加,并对其进行平均,以获得灰色图像

def gray_scale(img,x,y): 
pixel=img[x][y]
r= pixel[0]
g=pixel[1]
b=pixel[2]
return(r+g+b)/3

我必须在我的主文件中调用这个函数(我也有问题,因为我不知道如何使用参数。我不确定我做错了什么

我认为您的问题是如何使用此函数将图像转换为灰度。

首先,在你的主.py:

for x in range(img.shape[0]):
for y in range(img.shape[1]):
gray_pixel = gray_scale(img[x][y])
grayscaled_image[x][y] = gray_pixel

假设图像支持形状属性。如果是Numpy数组,则为.

灰度函数如下所示:

def gray_scale(pixel_value): 
r = pixel[0]
g = pixel[1]
b = pixel[2]
return (r + g + b) / 3

这就是上面代码中发生的情况。您的main.py在图像中的所有像素上进行迭代。这些像素(每个像素都是包含R、G和B值的阵列(被发送到gray_scale函数。

此函数计算灰度值并返回。此灰度值存储在gray_pixel变量中。

然后将该灰度像素插入灰度_ image中的适当位置。

显然,正如@DinosaurMoritz所指出的,更优化、更简单的方法是使用OpenCV,除非你必须实现自己的。

最新更新