Python 为什么这种在PNG文件中保存标准化像素数组的方法不起作用?

Python 为什么这种在PNG文件中保存标准化像素数组的方法不起作用?,python,arrays,image,save,png,Python,Arrays,Image,Save,Png,我搜索了很多关于在PNG文件中保存像素数组的问题,并根据前面的答案进行了一些修改。但我的代码仍然不起作用。系统不断打印出“无法转换”。谁能给点建议吗?我将不胜感激 for i in range(0, len(imgfile)-1): img = cv2.imread(join(mypath,imgfile[i]),cv2.IMREAD_COLOR) imgs[i] = cv2.normalize(img, alpha=0, beta=1, norm_type=cv2.NORM_M

我搜索了很多关于在PNG文件中保存像素数组的问题,并根据前面的答案进行了一些修改。但我的代码仍然不起作用。系统不断打印出“无法转换”。谁能给点建议吗?我将不胜感激

for i in range(0, len(imgfile)-1):
    img = cv2.imread(join(mypath,imgfile[i]),cv2.IMREAD_COLOR)
    imgs[i] = cv2.normalize(img, alpha=0, beta=1, norm_type=cv2.NORM_MINMAX, 
dtype=cv2.CV_32F)

height=100
width=100
max_pat=1000
total_size=len(imgs)*max_pat*height*width*3
patches = np.zeros(total_size)
patches = patches.reshape(len(imgs), max_pat, height, width, 3)
patches = patches.astype('float32')

# Create patches and save to PNG files
for i in range(0, len(imgs)-1):
    arr = np.array(imgs[i])
    patches[i,:,:,:,:] = extract_patches_2d(arr, (height, width), max_pat)
    for j in range(0, max_pat-1):
        try:
           image.fromarray(patches[i,j,:,:,:],'RGB').save(join(pathto,'pic',str(i),str(j),'.PNG'),'PNG')
        except IOError:
            print "cannot convert"

查看回溯(或至少打印异常)会有所帮助。调用fromarray时,图像的数据类型是什么?你不能在cv2中使用imwrite吗?让代码运行会很有帮助……在我用“+”而不是join()连接路径名和文件名之后,它就工作了。谢谢你的评论。