cv2.VideoWriter_fourcc的反面是什么?

ste*_*eve 4 python opencv cv2

函数cv2.VideoWriter_fourcc从字符串(四个字符)转换为int。例如,cv2.VideoWriter_fourcc(*'MJPG')为编解码器MJPG(无论是哪种格式)提供了一个int。

cv2是否提供相反的功能?我想将值显示为字符串。我想从fourcc int值获取一个字符串。

我可以自己编写转换,但是如果cv2存在,我会使用它。

Ale*_*lex 5

我不认为cv2有这种转换。这是如何从fourcc数字代码转换为fourcc字符串字符代码(假设数字是cv2.CAP_PROP_FOURCC返回的数字):

# python3
def decode_fourcc(cc):
    return "".join([chr((int(cc) >> 8 * i) & 0xFF) for i in range(4)])
Run Code Online (Sandbox Code Playgroud)

因此,例如,如果您打开视频捕获流以获取有关编解码器的信息或获取有关特定编解码器的信息,则可以尝试以下操作:

c = cv2.VideoCapture(0)
# codec of current video
codec = c.get(cv2.CAP_PROP_FOURCC)
print(codec, decode_fourcc(codec))
# codec of mjpg
codec = cv2.VideoWriter_fourcc(*'MJPG')
print(codec, decode_fourcc(codec))
Run Code Online (Sandbox Code Playgroud)