我有一个48x48的piexl值列表,我想将其编写为灰度图像文件。

为此,我将列表转换为numpy数组并使用imwrite。

import cv2
from numpy import array
......
#pix is a 48x48 list containing pixel values
pix = array(pix)
cv2.imwrite('test.jpg',pix)

但是,它返回以下错误
Traceback (most recent call last):
  File "face_detect.py", line 20, in <module>
    cv2.imwrite('test.jpg',pix)
TypeError: img data type = 18 is not supported

显然,它与数据类型有关,但是如果不是numpy数组,则imwrite的第二个参数应该是什么?

最佳答案

我发现了问题,无论是帖子还是下面的评论。

我从csv文件读取了值,其中的数字用空格分隔。我使用line.split()将它们分成单独的数字,但实际上我仍然将它们视为字符串。

所以我要做的就是将它们转换为整数。我也不需要对其进行归一化,0〜255是正确的。

那真是我的愚蠢,但万一有人遇到同样的问题。

关于python - opencv:将像素写入图像,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29487998/

10-10 21:15