2013-05-08 2 views
0

Я не могу преобразовать RGB в YCrCb в новый API-интерфейс OpenCV python (cv2). Когда я запускаю этот код:OpenCV Python: конвертировать RGB в YCrCb

img = cv2.imread('img1.jpg') 
imgYCC = cv2.cvtColor(img, cv2.COLOR_RGB2YCrCb) 

, я получаю эту ошибку:

AttributeError: 'module' object has no attribute 'COLOR_RGB2YCrCb' 

Что я делаю неправильно?

+0

Атрибут является 'CV_RGB2YCrCb', не' COLOR_RGB2YCrCb' – sgarizvi

+0

В питона он отличается от других языков. Например, 'COLOR_RGB2LAB' отлично работает – Zack

ответ

6

Наименование атрибута COLOR_RGB2YCR_CB для заказа RGB.

Имейте в виду, что OpenCV изначально использует цветовое оформление BGR, а не RGB, и в этом случае атрибут COLOR_BGR2YCR_CB. Таким образом, вы можете изменить код:

img = cv2.imread('img1.jpg') 
imgYCC = cv2.cvtColor(img, cv2.COLOR_BGR2YCR_CB) 
+0

Большое вам спасибо ... Работает как шарм. – Zack

+0

Независимо от того, что OpenCV использует изначально, .jpg изображения RGB. – martineau

+0

@martineau Интересное наблюдение. Просто для разъяснения: 'cv2.imread()' загружает цветные изображения в память с упорядочением каналов BGR, даже если формат файла указывает иначе. – Aurelius

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