Каков наилучший способ исправить проблемы Pixel Aspect Ratio (PAR) в DirectShow?

Я использую фильтр графа DirectShow для захвата кадров из видео. Текущая реализация следует этому графику:

SourceFilter-> SampleGrabber-> NullRenderer

Это работает большую часть времени для извлечения изображений кадр за кадром для дальнейшей обработки. Однако я столкнулся с проблемами с некоторыми видео, которые не имеют PAR 1: 1. Эти изображения появляются растянутыми на моих этапах обработки.

Единственный способ исправить это, который я нашел на данный момент, это использовать средство визуализации VMR9 в режиме без окон, которое использует GetCurrentImage () для извлечения растрового изображения с правильным соотношением сторон. Но этот метод не очень полезен для непрерывного захвата тысяч кадров.

Теперь у меня вопрос: как лучше всего решить эту проблему? Кто-нибудь тоже сталкивался с этой проблемой?

0

Решение

Sample Grabber дает вам кадры с оригинальными пикселями. Это не совсем проблема, если есть соотношение сторон и пиксели не являются «квадратными пикселями». Для преобразования в квадратные пиксели вам просто необходимо растянуть изображение соответственно. Вам будет проще выполнить этот шаг масштабирования вне конвейера DirectShow, и у вас есть все необходимые данные: пиксели и исходный тип носителя. Вы можете рассчитать соответствующее разрешение с квадратными пикселями и изменить размер изображения.

1

Другие решения


По вопросам рекламы [email protected]