Top.Mail.Ru
Ответы

Как получить соотношение сторон пикселя с помощью OpenCV?

Для получения ширины и высоты в пикселях в OpenCV использую следующий код:

w = (int)capture.get(CAP_PROP_FRAME_WIDTH);
h = (int)capture.get(CAP_PROP_FRAME_HEIGHT);

Таким образом, используя OpenCV, можно получить SAR (отношение ширины изображения к высоте в пикселях).

SAR = w / h;

Соотношение сторон дисплея - это отношение ширины изображения к высоте (в единицах длины, таких как сантиметры или дюймы) при отображении на экране, и оно рассчитывается на основе комбинации соотношения сторон пикселей и соотношения сторон хранения.

SAR × PAR = DAR

Встречаются видео, где пиксели не квадратные.
Как получить PAR (соотношение сторон пикселей) средствами OpenCV?

По дате
По Рейтингу
Аватар пользователя
Гений

1. Соотношение сторон дисплея как физического устройства - совершенно отдельная тема, с которой не связан ни видеофайл, ни OpenCV. Это делается системными средствами, например, через анализ EDID
2. Собственно, сам OpenCV также игнорирует аспект пиксела, ибо не нужен;
3. Единственное место, где задан аспект пиксела для видеофайла - это метаданные; если в них он утрачен - то восстановить его можно только вручную на глазок. Вычислить его из каких-то расчетов высоты/ширины и подобного невозможно.
4. Чтобы прочесть метаданные - придется использовать соответствующую либу, которая умеет их вычитывать, типа QMediaMetaData или MediaInfo