因此,我被要求使用每个像素的加权平均值将BGR图像转换为GREYSCALE。
img = cv2.imread('..\\Images\\horse.jpg',-1)
height = img.shape[0]
width = img.shape[1]
gray = img.copy()
for x in range(img.shape[1]):
for y in range(img.shape[0]):
gray[y][x]= (0.11 * img[y][x][0] + 0.6 * img[y][x][1] + 0.3 * img[y][x][2])
print(gray)
print(gray.shape)
cv2.imshow('gray',gray)
cv2.waitkey(0)
结果图像的形状:
(404, 640, 3)
它应该是一个通道图像吗?结果显示的图像是GRALESCALE,但它仍然是3通道图像,有人可以帮我吗?
原因很简单,这是因为您img
在开始时复制了三个通道的整体。您只需要复制一个频道,如下所示:
gray = img[:, :, 0].copy()
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句