Итак, в основном я пытаюсь преобразовать набор изображений RGB в оттенки серого, используя cv2.cvtColor, а python выдает следующую ошибку:
Traceback (последний вызов был последним):
Файл "MCG.py", строка 53, в
серый = cv2.cvtColor (данные, cv2.COLOR_BGR2GRAY)
TypeError: src - это не пустой массив и не скаляр.
Вот этот код:
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. Если кому-то интересно, почему я импортировал модули, которые, по-видимому, не используются в этом коде, этот код является всего лишь частью целого, и все эти модули используются тем или иным образом.