我有以下方法:
def _create_capture_object(self):
self._cap = cv2.VideoCapture(self._path_to_video)
self._width = self._cap.get(cv2.CAP_PROP_FRAME_WIDTH)
self._height = self._cap.get(cv2.CAP_PROP_FRAME_HEIGHT)
self._frame_rate = self._cap.get(cv2.CAP_PROP_FPS)
self._frame_count = self._cap.get(cv2.CAP_PROP_FRAME_COUNT)
self._n_channels = self._cap.get(cv2.CAP_PROP_CHANNEL)
一切都按预期工作,除了
self._n_channels = self._cap.get(cv2.CAP_PROP_CHANNEL)
总是返回
0.0
我怎样才能得到
1
如果是灰度视频,或 3
如果是彩色视频?
最佳答案
cv2.CAP_PROP_CHANNEL
属性似乎
return 0 when querying a property that is not supported by the backend used by the VideoWriter instance.
引用自最新 documentation的opencv 4.3。
我相信获得 channel 值的唯一方法是捕获帧然后检索它的形状信息。
编辑#1:感谢@ Dan Mašek我更新了与新文档相对应的答案。
关于python - 如何知道 cv2 VideoCapture 对象中有多少个颜色 channel ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61699391/