Как получить экран устройства Android в режиме реального времени (40-60 кадров в секунду) для обработки кадров (УСТРОЙСТВО С КОРЕННЫМИ УСТРОЙСТВАМИ) (Исключить / игнорировать вид наложения) - PullRequest
0 голосов
/ 10 февраля 2019

В настоящее время я использую MediaProjection, чтобы захватить кадр экрана (я не хочу Camera Stream, я хочу поток устройства), обработать его с помощью openCV, а затем нарисовать несколько линий на оверлее (Hough Lines), затем добавить это наложение на экран.

Поскольку MediaProjection записывает все, что присутствует на экране, оно включает мое наложение openCV в последующие скриншоты, что нежелательно.

Мне нужен способ делать скриншоты, игнорируя этот вид наложения,и это должно быть сделано как можно ближе к реальному времени.

Моя цель - обрабатывать экранные данные (кадр за кадром) ДРУГИХ приложений (желательно все, что отображается на экране), а не мое собственное приложение.

Поскольку я использую рутированное устройство, я открыт для любых предложений, таких как использование пользовательских ROMS / OS или любых других технических волшебных устройств.

Я использую ROOTED-устройство и буду запускать мое приложение наодно и то же устройство.Я пытался использовать: 1) MediaProjection API 2) System / bin / ScreenCap

Я также пытался "скрыть" мой оверлейный вид непосредственно перед тем, как сделать снимок экрана, но, похоже, он не работает, так какИзображения MediaProjection или ScreenCap на самом деле не в реальном времени, а несколько секунд назад.

Я использовал это приложение в качестве отправной точки: https://github.com/commonsguy/cw-omnibus/tree/master/MediaProjection/andshooter

Весь код такой же, за исключением некоторого дополнительного OpenCVоперации.

Вот некоторые примеры из кода, который я выполняю: Источник После обработки

Я хочу исключить обработку / строкив следующий раз я получу свой скриншот.Есть ли способ сделать это?

...