Numpy 在using for loop中将rgb图像转换为ycbcr会导致类型错误
我想访问我的目录中的图像,并使用for循环将它们从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
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)