алгоритм из cv2.cvtColor (img, cv2.COLOR_BGR2GRAY) - PullRequest
0 голосов
/ 20 сентября 2019

Я хочу создать программу для преобразования 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 Ответ

1 голос
/ 20 сентября 2019

Метод немного сложнее, но в целом вы правы.Человеческий глаз наиболее чувствителен к зеленому свету, затем к красному, а затем к голубому.Значение шкалы серого рассчитывается как средневзвешенное значение для трех каналов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...