Я новичок в openCV и застрял на этой ошибке без разрешения. Я пытаюсь преобразовать изображение из BGR в формат градаций серого, используя этот код-
img = cv2.imread('path//to//image//file')
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
Кажется, это работает нормально. Я проверил тип данных переменной img
, которая оказывается numy ndarray и имеет форму (100,80,3)
. Однако, если я приведу изображение, уже присутствующее в коде типа данных numpy ndarray, и с такими же размерами, что и входные данные для функции cvtColor
, это выдаст мне следующую ошибку -
Error: Assertion failed (depth == 0 || depth == 2 || depth == 5) in cv::cvtColor, file D:\Build\OpenCV\opencv-3.4.1\modules\imgproc\src\color.cpp, line 11109
cv2.error: OpenCV(3.4.1) D:\Build\OpenCV\opencv-3.4.1\modules\imgproc\src\color.cpp:11109: error: (-215) depth == 0 || depth == 2 || depth == 5 in function cv::cvtColor
Код для второго случая (создание собственного np.ndarray здесь) -
img = np.full((100,80,3), 12)
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
Может кто-нибудь уточнить, в чем причина этой ошибки и как ее исправить?