gpt4 book ai didi

python - 如何将 24 帧编码为一张 24 位 RGB 图像?

转载 作者:太空宇宙 更新时间:2023-11-03 20:10:52 24 4
gpt4 key购买 nike

我想添加 Blender 对光场显示设备的支持。显示器与标准 HDMI 电缆的工作方式是视频的每个 24 位 RGB 帧存储 24 个单色帧。显示器在接收到这些帧时将其分割。这是一个例子:

enter image description here

当然,要实现此功能,必须首先将单色帧正确编码到单个 24 位 RGB 图像中。 PIL、Pillow 或其他 Python 库可以允许执行此操作吗?

最佳答案

不是生产质量,但可能足以让你开始,我认为它一定是这样的:

#!/usr/bin/env python3

from PIL import Image
import numpy as np

w, h = 192, 192

# Create RGB output array h, w, 3
out = np.zeros((h,w,3),dtype=np.uint8)

file = 1
# Iterate over 3 channels, Red, Green and Blue- or maybe B, G, R
for channel in range(3):
# Iterate over the 8 bits in each channel
for bitpos in range(8):
filename = f"{file}.png"
print(f"Opening {filename} as bit {bitpos} of channel {channel}")
im = Image.open(filename).convert('L')

# Convert to Numpy image with range 0..1
ni = (np.array(im)/255).astype(np.uint8)

# Shift and stuff into output array
out[...,2-channel] |= ni << (bitpos)
file += 1

result = Image.fromarray(out)
result.save('result.png')

示例输出

Opening 1.png as bit 0 of channel 0
Opening 2.png as bit 1 of channel 0
Opening 3.png as bit 2 of channel 0
Opening 4.png as bit 3 of channel 0
Opening 5.png as bit 4 of channel 0
Opening 6.png as bit 5 of channel 0
Opening 7.png as bit 6 of channel 0
Opening 8.png as bit 7 of channel 0
Opening 9.png as bit 0 of channel 1
Opening 10.png as bit 1 of channel 1
Opening 11.png as bit 2 of channel 1
Opening 12.png as bit 3 of channel 1
Opening 13.png as bit 4 of channel 1
Opening 14.png as bit 5 of channel 1
Opening 15.png as bit 6 of channel 1
Opening 16.png as bit 7 of channel 1
Opening 17.png as bit 0 of channel 2
Opening 18.png as bit 1 of channel 2
Opening 19.png as bit 2 of channel 2
Opening 20.png as bit 3 of channel 2
Opening 21.png as bit 4 of channel 2
Opening 22.png as bit 5 of channel 2
Opening 23.png as bit 6 of channel 2
Opening 24.png as bit 7 of channel 2

enter image description here

关于python - 如何将 24 帧编码为一张 24 位 RGB 图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58726394/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com