算法来自 cv2.cvtColor (img, cv2.COLOR_BGR2GRAY)
algorithm from cv2.cvtColor (img, cv2.COLOR_BGR2GRAY)
我想编写一个程序将 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
,以便它可以转换为灰度图像?
该方法稍微复杂一些,但您大致是正确的。人眼对绿光最敏感,其次是红光,然后是蓝光。灰度值计算为三个通道值的加权平均值。
我想编写一个程序将 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
,以便它可以转换为灰度图像?
该方法稍微复杂一些,但您大致是正确的。人眼对绿光最敏感,其次是红光,然后是蓝光。灰度值计算为三个通道值的加权平均值。