我有一个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/