opencv:将像素写入图像

时间:2015-04-07 09:17:05

标签: python opencv numpy

我有一个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的第二个参数应该是什么?

1 个答案:

答案 0 :(得分:0)

我发现了问题,包括帖子和我在下面的评论。

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

所以我所要做的就是将它们转换为整数。我也不需要将其标准化,0~255是正确的。

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