我正在编写一个函数(稍后必须将其调用到主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,除非你必须实现自己的。