来自cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)的算法

时间:2019-09-20 13:16:12

标签: python opencv rgb opencv3.0 grayscale

我想编写一个程序来将RGB图像大量转换为灰度,并使用此代码

files = [f for f in listdir(path) if isfile(join(path,f))] 
for image in files:
    try:
        img = cv2.imread(os.path.join(path,image))
        gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
        dstPath = join(dstpath,image)
        cv2.imwrite(dstPath,gray)
    except:
        print ("{} is not converted".format(image))

你们能给我解释一下吗 cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)的工作或算法如何

或更准确地说,程序代码段如何将RGB图像转换为灰度图像?计算如何?

算法是否对图像中的所有像素都使用公式R + G + B / 3,以便可以转换为灰度图像?

1 个答案:

答案 0 :(得分:1)

该方法稍微复杂一点,但是您大体上是正确的。人眼对绿光最敏感,然后是红色,然后是蓝色。将灰度值计算为三个通道值的加权平均值。