0

我想访问我目录中的图像并使用 for 循环将它们从 RGB 转换为 YCbCr。我不擅长编程和尽我所能。我在下面有这段代码:

import numpy as np
import cv2, os
from glob import glob

path= 'the_path_to_the_images'

for filename in os.listdir(path):
    ycbcr = cv2.cvtColor(filename, cv2.COLOR_BGR2YCrCb)
    cv2.imwrite( filename, ycbcr)

这会引发错误:

TypeError: src is not a numpy array, neither a scalar

我已经搜索了一些方法来解决它,但我做不到。我应该如何解决这个问题?

或者,任何人都可以在这里分享另一种实现我的目标的方法吗?

4

1 回答 1

1

为了进行颜色转换,您需要提供一个 numpy 数组或一个标量cvtColor方法。因此,在您的情况下,您首先需要使用路径读取图像,cv2.imread(filename)然后进行转换。

一个完整的解决方案是

path= 'the_path_to_the_images'

for filename in os.listdir(path):
    image = cv2.imread(filename)
    ycbcr = cv2.cvtColor(image, cv2.COLOR_BGR2YCrCb)
    cv2.imwrite( filename, ycbcr)
于 2018-03-23T10:55:54.077 回答