opencv python:不支持mat data type=17

2024-06-02 07:16:47 发布

您现在位置:Python中文网/ 问答频道 /正文

我只是尝试使用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)

这些都是正在解释的台词,也是唯一与我面临的问题相关的台词。有人知道我做错了什么吗?

谢谢


Tags: 图像selffalsedeflinecv2colorbgr
1条回答
网友
1楼 · 发布于 2024-06-02 07:16:47

您的图像是一个CV_8S图像(8位有符号整数)。This site显示从数字数据类型到实际类型的转换,类型17对应于8位带符号int。这是因为cvtColor()不接受8位带符号int图像作为输入。从^{}上的文档:

src – input image: 8-bit unsigned, 16-bit unsigned (CV_16UC...), or single-precision floating-point.

因此,您的输入图像必须是CV_8Unumpy.uint8)或CV_16Unumpy.uint16)或CV_32Fnumpy.float32)类型,并具有用于颜色转换的适当通道数。

相关问题 更多 >