Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Numpy 在using for loop中将rgb图像转换为ycbcr会导致类型错误_Numpy_For Loop_Opencv Python - Fatal编程技术网

Numpy 在using for loop中将rgb图像转换为ycbcr会导致类型错误

Numpy 在using for loop中将rgb图像转换为ycbcr会导致类型错误,numpy,for-loop,opencv-python,Numpy,For Loop,Opencv Python,我想访问我的目录中的图像,并使用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.im

我想访问我的目录中的图像,并使用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
我已经找到了一些方法来解决这个问题,但我做不到。 我该如何解决这个问题


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

为了进行颜色转换,您需要提供一个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)