python - 如何知道 cv2 VideoCapture 对象中有多少个颜色 channel ?

标签 python opencv video colors

我有以下方法:

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/

相关文章:

video - 连接视频音频/视频不同步 : Non-monotonous TDS output

python - 如何建立一个有限制的撤销存储?

opencv - 段错误错误..使用opencv_createsamples

python - 如何在CV2中的图像上使用orb?

html - 如果打开的选项卡过多,Chrome HTML5 视频将停止工作 - 内存问题?

css - 使用 Z-Index 的全屏分层视频

python - 如何使用 scikit-learn 计算调整后的 R 平方分数?

python - 如何删除 `row[patient_id]` 重复的行和 `row[Target]==0` ?

php - 如何防止我的网站成为 "hit-boosted"?

python - 为图像中的不同生物细胞分配不同的颜色