2014-12-14 4 views
0

При попытке преобразовать изображение в оттенки серого в OpenCV я получаю следующее сообщение об ошибке, которую можно увидеть здесь: OpenCV Assertion Ошибка при преобразовании изображения в оттенки серого

Вот код:

import cv2 

img = cv2.imread('pictures\chessBoard.png',0) 
gray_image = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) 

Эти сообщения об ошибках довольно загадочны, особенно для кого-то нового для opencv. Спасибо за помощь!

ответ

4

Флаг 0 в imread заставляет ваше изображение в оттенках серого уже, таким образом, последующее преобразование терпит неудачу.

так либо пропустить преобразование:

gray_image = cv2.imread('pictures\chessBoard.png',0) 
cv2.imshow('image',gray_image) 
cv2.waitKey(0) 
... 

или читать BGR изображение и преобразовать позже

img = cv2.imread('pictures\chessBoard.png') 
gray_image = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) 
cv2.imshow('image',gray_image) 
cv2.waitKey(0) 

так же, как напоминание, здесь являются imread() флаги снова:

>>> help(cv2) 
... 
IMREAD_ANYCOLOR = 4 
IMREAD_ANYDEPTH = 2 
IMREAD_COLOR = 1 
IMREAD_GRAYSCALE = 0 
IMREAD_LOAD_GDAL = 8 
IMREAD_UNCHANGED = -1 
... 
+0

Вы правы! Спасибо – user1243

+0

@ seat3542 Обязательно отметьте это как решение, так как оно сработало. – KobeJohn

Смежные вопросы