2014-11-20 3 views
5

создать красное изображение и попытаться сохранить его с помощью cv2.imwriteTypeError: тип данных IMG = 17 не поддерживается

import numpy as np 
    import cv2 

    RED = [0, 0, 255] 
    IMAGE_SIZE = 100 

    image = np.empty([IMAGE_SIZE, IMAGE_SIZE], dtype=type(RED)) 
    for i in range(IMAGE_SIZE): 
     for j in range(IMAGE_SIZE): 
      image[i, j] = RED 

    cv2.imwrite("red.png", image) 

Но я получаю ошибку

 File "C:/Users/Andrew/Desktop/Programms/image-processing-cource/Tracks.py", line 11, in save_image 
cv2.imwrite(name, image) 
    TypeError: img data type = 17 is not supported 

Как это исправить?

Спасибо!

+0

Почему вы используете 'DTYPE = тип (RED)' 'для image'? 'type (RED)' - список python; используя «image» массив объектов python (а не с числовым типом). Почему бы не использовать, скажем, 'dtype = int'? –

+0

Если я использую 'dtype = type (int)' (и 'RED = 200'), то я получу ту же ошибку – IvanovAndrew

+0

Ue' dtype = int' (не 'type (int)'). Установка 'dtype' устанавливает тип данных элементов массива, который вы создаете. –

ответ

2

dtype = type(RED) дает вам тип list, а не тип int.

вам нужно:

image = np.empty([IMAGE_SIZE, IMAGE_SIZE, 3], dtype=type(RED[0])) 
Смежные вопросы