请问官方文档中没有定义的视频采集属性的含义是什么?例如,
import cv2
cap = cv2.VideoCapture(filename)
视频属性可以通过以下任一方式进行轮询:
cap.get(cv2.CAP_PROP_FPS)
或 cap.get(5)
opencv 文档定义了最多 51 个属性。但是索引 55、68、69 和 70 处有元数据属性,但它们在文档中没有相应的定义。它们是在其他地方定义的吗?也许是 mp4 或 h.264 规范?
有超过 200 个...这里是如何列出它们
import cv2
print(f"{'Counter':<8}{'ID':<8}{'Name'}")
i = 0
for attr in dir(cv2):
if attr.startswith('CAP_PROP'):
print(f"{i:<8}{getattr(cv2, attr):<8}{attr}")
i += 1
输出
Counter ID Name
0 17008 CAP_PROP_APERTURE
1 600 CAP_PROP_ARAVIS_AUTOTRIGGER
2 63 CAP_PROP_AUDIO_BASE_INDEX
3 61 CAP_PROP_AUDIO_DATA_DEPTH
[...]
24 31 CAP_PROP_DC1394_MAX
25 -2 CAP_PROP_DC1394_MODE_AUTO
26 -3 CAP_PROP_DC1394_MODE_MANUAL
27 -1 CAP_PROP_DC1394_MODE_ONE_PUSH_AUTO
28 -4 CAP_PROP_DC1394_OFF
29 15 CAP_PROP_EXPOSURE
30 17009 CAP_PROP_EXPOSUREPROGRAM
31 28 CAP_PROP_FOCUS
[...]
276 450 CAP_PROP_XI_WB_KB
277 449 CAP_PROP_XI_WB_KG
278 448 CAP_PROP_XI_WB_KR
279 451 CAP_PROP_XI_WIDTH
280 27 CAP_PROP_ZOOM
按 ID 对它们进行排序或将它们放入字典形式可能会很有用
def cap_prop() -> dict:
pairs = [(getattr(cv2, attr), attr) for attr in dir(cv2) if attr.startswith('CAP_PROP')]
pairs.sort()
return dict(pairs)
props = cap_prop()
print(props.get(10, None))
#CAP_PROP_BRIGHTNESS
print(props.get(71, None)) # use the get-form, IDs are not complete!
#None