Как узнать, сколько цветовых каналов в объекте cv2 VideoCapture? - PullRequest
0 голосов
/ 09 мая 2020

У меня есть следующий метод:

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 в случае цветного видео?

1 Ответ

2 голосов
/ 09 мая 2020
Атрибут

cv2.CAP_PROP_CHANNEL кажется, что

возвращает 0 при запросе свойства, которое не поддерживается сервером, используемым экземпляром VideoWriter.

Цитируется от до дата документация opencv 4.3.

Я считаю, что единственный способ получить значение канала - это захватить кадр и извлечь из него информацию о форме.

РЕДАКТИРОВАТЬ №1: Спасибо @ Dan Mašek Я обновил свой ответ в соответствии с новой документацией.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...