我想访问目录中的图像,并使用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
我已经搜索了一些方法来解决它,但我做不到。 我该如何解决这个问题?
或者,有人可以分享另一种方法来实现我的目标吗?
答案 0 :(得分:1)
为了进行颜色转换,您需要为cvtColor
方法提供numpy数组或标量。因此,在您的情况下,首先需要使用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)