[英]opencv python: mat data type = 17 is not supported
我只是想在 python 中使用 opencv 将图像从 BGR 转换为 RGB。 但是这样做时,我收到此错误消息:
line 62, in getRep\n rgbImg = cv2.cvtColor(imgFrame,
cv2.COLOR_BGR2RGB)\nTypeError: src data type = 17 is not supported\n
我看到图像作为参数传递,它在 BGR 中,正如我预期的那样,但它不起作用:
def getRep(self, imgFrame, multiple=False):
bgrImg = imgFrame.copy()
cv2.imshow('debug', imgFrame) #this line does show a BGR image
cv2.waitKey(0)
rgbImg = cv2.cvtColor(imgFrame, cv2.COLOR_BGR2RGB)
def recognize(self, imgFramePath):
imgFrame= cv2.imread(imgFramePath)
imgFrame = np.array(imgFrame)
reps = self.getRep(imgFrame, False)
这些是正在解释的所有行,也是与我面临的问题相关的唯一行。 有人知道我做错了什么吗?
谢谢
您的图像是CV_8S
图像(8 位有符号整数)。 该站点显示了从数字数据类型到实际类型的转换,类型 17 对应于 8 位有符号整数。 这是问题,因为cvtColor()
不接受 8 位带符号的 int 图像作为输入。 从cvtColor()
上的文档:
src – 输入图像:8 位无符号、16 位无符号 (
CV_16UC...
) 或单精度浮点。
因此,您的输入图像需要是CV_8U
( numpy.uint8
) 或CV_16U
( numpy.uint16
) 或CV_32F
( numpy.float32
) 类型,并具有正确数量的通道以用于您正在使用的颜色转换。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.