2014-11-20 668 views
5

創建紅色圖像,並嘗試通過cv2.imwrite類型錯誤: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

爲什麼你使用'D型=型(RED)''爲image'? 'type(RED)'是一個python列表;使用它可以讓'image'成爲一個python對象數組(而不是一個數字類型)。爲什麼不使用'dtype = int'? – 2014-11-20 23:03:36

+0

如果我使用'dtype = type(int)'(和'RED = 200'),那麼我將得到相同的錯誤 – IvanovAndrew 2014-11-21 00:10:55

+0

Ue'dtype = int'(不是'type(int)')。設置'dtype'設置你正在創建的數組元素的數據類型。 – 2014-11-21 00:28:36

回答

2

dtype = type(RED)爲您提供類型list而不是int

你需要:

image = np.empty([IMAGE_SIZE, IMAGE_SIZE, 3], dtype=type(RED[0])) 
相關問題