gpt4 book ai didi

python - 想要将彩色图像附加到列表并使用 OpenCV 将该列表转换为灰度

转载 作者:太空宇宙 更新时间:2023-11-03 21:31:55 25 4
gpt4 key购买 nike

所以基本上我正在尝试使用 cv2.cvtColor 将一组 RGB 图像转换为灰度,而 python 抛出以下错误:

追溯(最近的调用最后): 文件“MCG.py”,第 53 行,位于 灰色 = cv2.cvtColor(数据, cv2.COLOR_BGR2GRAY)
TypeError: src 不是 numpy 数组,也不是标量。

这是代码:

import numpy as np  
import cv2
import dlib
import sys
import skimage
from PIL import Image
import os
import glob


folderpath = sys.argv[1]
cascPath = sys.argv[2]

imageformat = ".tif"
path = folderpath
imfilelist = [os.path.join(path,f) for f in os.listdir(path) if f.endswith(imageformat)]
data = []
for IMG in imfilelist:
print IMG
image = cv2.imread(IMG)
data.append(image)
cv2.imshow('Image', image)
cv2.waitKey(0)

faceCascade = cv2.CascadeClassifier(cascPath)

predictor = dlib.shape_predictor(PREDICTOR_PATH)

gray = cv2.cvtColor(data, cv2.COLOR_BGR2GRAY)

faces = faceCascade.detectMultiScale(
gray,
scaleFactor=1.05,
minNeighbors=5,
minSize=(100,100)
)

如您所见,我正在尝试将所有这些图像附加到一个列表中,然后使用 cv2.cvtColor 函数对其进行转换。但是,会抛出该错误。我究竟做错了什么?谢谢。

P.S 如果有人想知道为什么我导入了这段代码中似乎没有使用的模块,这段代码只是整个代码的一部分,所有这些模块都以一种或另一种方式使用。

最佳答案

如果您阅读 cv2.cvtColor文档,可以看到第一个参数是Src 8位单 channel 图像。但是,在您的情况下,您要提供完整的图像列表。所以把代码改成

gray = []
for j in range(0,len(data)):
gray.append(cv2.cvtColor(np.array(data[j]), cv2.COLOR_BGR2GRAY))

我想这应该可行。

关于python - 想要将彩色图像附加到列表并使用 OpenCV 将该列表转换为灰度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51084289/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com