Форум русскоязычного сообщества Ubuntu


Автор Тема: Как открыть несколько видео потоков в окне с уже открытым видео потоком в OpenCV  (Прочитано 1342 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Xyanight

  • Автор темы
  • Участник
  • *
  • Сообщений: 147
  • Это просто какой-то Python!
    • Просмотр профиля


Как открыть несколько видео потоков в окне с уже открытым видео потоком в OpenCV (Python)? То есть, конкретно нужно в том же окне, в котором выводится видео с камеры, открыть еще одно окошко с другим видео потоком.

Я делаю следующее:

# Копия потока.
frame_copy = cv.resize(frame_copy, (100, 100))
# Размещваем копию с левой стороны основного потока видео.
# self.frame - главный видео поток.
self.frame[0:100, 0:100] = frame_copy

И все нормально работает. Но стоит попытаться разместить еще одно окошко...

frame_copy2 = cv.resize(frame_copy2, (100, 100))
self.frame[0:100, 100:100] = frame_copy2

...вылазит ошибка...

ValueError: operands could not be broadcast together with shapes (100,0,3) (100,100,3)

Как я только не извращался с этими координатами и размерами, решения не нашел.
Это просто какой-то Python!

Оффлайн vasiliyVV

  • Новичок
  • *
  • Сообщений: 47
    • Просмотр профиля
Немного не то, но всё же:
писал как то одному человеку похожую вещь на Python + OpenCV + вывод на web-страничку.
Может такой вариант устроит?

Сам скрипт (web_video_stream.py):
(Нажмите, чтобы показать/скрыть)

Страничка веб (index.html):
(Нажмите, чтобы показать/скрыть)

Конфиг (config):
(Нажмите, чтобы показать/скрыть)

Писалось под окна, поэтому .decode("cp1251").
Измените на свою.
« Последнее редактирование: 06 Март 2014, 13:54:29 от vasiliyVV »

Оффлайн Xyanight

  • Автор темы
  • Участник
  • *
  • Сообщений: 147
  • Это просто какой-то Python!
    • Просмотр профиля
Так а зачем таое нагромождение кода?  :D  Все ведь, на самом деле, делается с помощью одной строчки кода.

основной_поток[0:100, 0:100 # здесь понятно] = кадр_который нужно_вставить

С помощью Tkinter это тоже просто, но мне не хочется использовать дополнительные модули, так как это все делается средствами самой OpenCV/
« Последнее редактирование: 06 Март 2014, 23:54:55 от Xyanight »
Это просто какой-то Python!

Оффлайн vasiliyVV

  • Новичок
  • *
  • Сообщений: 47
    • Просмотр профиля
Так а зачем таое нагромождение кода?  :D  Все ведь, на самом деле, делается с помощью одной строчки кода.

основной_поток[0:100, 0:100 # здесь понятно] = кадр_который нужно_вставить

С помощью Tkinter это тоже просто, но мне не хочется использовать дополнительные модули, так как это все делается средствами самой OpenCV/

Ну так я и написал: "Может такой вариант устроит?".
Я просто привёл пример реализации.
Проще говоря у меня была немного другая задача.
Если вам не помогло, то сожалею.

Оффлайн Xyanight

  • Автор темы
  • Участник
  • *
  • Сообщений: 147
  • Это просто какой-то Python!
    • Просмотр профиля
Как бы там ни было, спасибо за помощь  :)
Это просто какой-то Python!

 

Страница сгенерирована за 0.076 секунд. Запросов: 24.