Python 2.7 类型错误:不支持img数据类型=17
我创建红色图像并尝试通过cv2.imwrite保存它Python 2.7 类型错误:不支持img数据类型=17,python-2.7,opencv,numpy,Python 2.7,Opencv,Numpy,我创建红色图像并尝试通过cv2.imwrite保存它 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):
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
如何修复它
谢谢 dtype=type(红色)
提供typelist
而不是typeint
你需要:
image = np.empty([IMAGE_SIZE, IMAGE_SIZE, 3], dtype=type(RED[0]))
您为什么对图像使用
dtype=type(红色)
<代码>类型(红色)是python列表;使用它可以使image
成为python对象的数组(而不是数字类型的数组)。为什么不使用,比如说,dtype=int
?如果我使用dtype=type(int)
(和RED=200
),那么我将得到相同的错误uedtype=int
(不是type(int)
)。设置dtype
设置要创建的数组元素的数据类型。此外,如果要创建包含RGB组件的数组,则形状应为(IMAGE\u SIZE,IMAGE\u SIZE,3)
。例如image=np.empty([image\u SIZE,image\u SIZE,3],dtype=int)
。例如,如果希望元素是8位无符号整数(图像的典型大小),可以使用dtype=np.uint8
。