2014-11-20 17 views
5

tworzę czerwony obraz i spróbuj zapisać go poprzez cv2.imwriteTypeError: typ danych img = 17 nie jest obsługiwany

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) 

Ale otrzymuję błąd

 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 

Jak to naprawić?

Dzięki!

+0

Dlaczego używasz 'dtype = typ (RED)' 'dla image'? 'type (RED)' jest listą pytonów; using, który czyni 'image' tablicą obiektów python (a nie typu numerycznego). Dlaczego nie używać, powiedzmy, 'dtype = int'? –

+0

Jeśli użyję 'dtype = type (int)' (i 'RED = 200'), otrzymam ten sam błąd – IvanovAndrew

+0

Ue' dtype = int' (nie 'type (int)'). Ustawienie 'dtype' ustawia typ danych elementów tworzonej macierzy. –

Odpowiedz

2

dtype = type(RED) podajemy typ list, a nie typ int.

trzeba:

image = np.empty([IMAGE_SIZE, IMAGE_SIZE, 3], dtype=type(RED[0])) 
Powiązane problemy