Python 来自cv2.CVT颜色的算法(img、cv2.COLOR\u BGR2GRAY)

Python 来自cv2.CVT颜色的算法(img、cv2.COLOR\u BGR2GRAY),python,opencv,rgb,opencv3.0,grayscale,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(dstpa

我想做一个程序,将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.CVT颜色(img,cv2.COLOR_BGR2GRAY)的工作原理或算法如何

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


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

该方法稍微复杂一些,但基本正确。人眼对绿光最敏感,然后是红光,然后是蓝光。灰度值作为三个通道值的加权平均值进行计算。

它位于。公式比3个通道的平均值更复杂。在文档中,点符号是RGB[a]中的“.”到灰色:Y← 0.299⋅R+0.587⋅G+0.114⋅B“这是不是意味着成倍增长?“Y”是什么意思?这是灰度符号吗?两个问题都是:灰色=0.299*R+0.587*G+0.114*B