ImageIO中的质量损失

7
我可以帮您翻译成中文,以下是翻译的结果:

我有一系列高分辨率的图像,我想使用ImageIO在Python(3.6)中将它们转换为MP4文件。有没有办法可以在不压缩或失去质量的情况下完成?

目前我使用的代码如下:

fileList = []
path = "./Images/MP4/relu-3layers-32units-M1/"
name = "img"
for file in os.listdir(path):
    if file.startswith(name):
        complete_path = path + file
        fileList.append(complete_path)

 writer = imageio.get_writer('test.mp4', fps = 30)

 for im in fileList:
      writer.append_data(imageio.imread(im))
 writer.close()

它生成了视频,但质量大幅降低。有什么办法可以修复这个问题吗?
1个回答

4
为了获得最佳效果,请选择适当的编解码器,例如'libx264'或'mjpeg',一定要选择最大视频质量,并可能选择像'yuvj444p'这样的像素格式:
writer = imageio.get_writer('test.mp4', fps = 30,
    codec='mjpeg', quality=10, pixelformat='yuvj444p')

编解码器mjpeg适用于jpg图像。默认的imageio选择libx264也应该很好地工作(并且可能制作更小的视频),但我了解到它可能在系统中缺失。

质量10是任何编解码器可能达到的最高质量。范围是0-10。

最后,像yuvj444p(或yuv444p)这样的像素格式记录所有三个通道的完整分辨率。其他选项,如yuvj420p和yuvj422p,会降低“u”和/或“v”通道的质量,对于普通图像也应该可以接受。


太有帮助了!谢谢! - Zohair

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接