Поделиться через


Структура HistogramHeader (mfapi.h)

Структура HistogramHeader описывает формат большого двоичного объекта для MF_CAPTURE_METADATA_HISTOGRAM.

Синтаксис

typedef struct tagHistogramHeader {
  ULONG         Size;
  ULONG         Bins;
  ULONG         FourCC;
  ULONG         ChannelMasks;
  HistogramGrid Grid;
} HistogramHeader;

Члены

Size

Размер этого заголовка + (HistogramDataHeader + следующие данные гистограммы) * количество доступных каналов.

Bins

Количество ячеек в гистограмме.

FourCC

Цветовое пространство, из которое собирается гистограмма

ChannelMasks

Маски цветовых каналов, для которые собирается гистограмма.

Grid

Сетка, из которую собирается гистограмма.

Комментарии

Атрибут MF_CAPTURE_METADATA_HISTOGRAM содержит гистограмму при захвате кадра предварительного просмотра.

Для поля ChannelMasks следующие битовые маски указывают доступные каналы в гистограмме:

#define MF_HISTOGRAM_CHANNEL_Y  0x00000001
#define MF_HISTOGRAM_CHANNEL_R  0x00000002
#define MF_HISTOGRAM_CHANNEL_G  0x00000004
#define MF_HISTOGRAM_CHANNEL_B  0x00000008
#define MF_HISTOGRAM_CHANNEL_Cb 0x00000010
#define MF_HISTOGRAM_CHANNEL_Cr 0x00000020

Каждый большой двоичный объект может содержать несколько гистограмм, собранных из разных областей или разных цветовых пространств одного кадра. Каждая гистограмма в большом двоичном объекте определяется собственным HistogramHeader. Для каждой гистограммы связана собственная область и размер выходных данных датчика. Для полнокадровой гистограммы область будет соответствовать размеру выходных данных датчика, указанному в histogramGrid.

Данные гистограммы для всех доступных каналов группируются в одну гистограмму. Данные гистограммы для каждого канала идентифицируются методом HistogramDataHeader непосредственно над данными. ChannelMasks указывает, сколько и какие каналы содержат данные гистограммы, то есть побитовое ИЛИ поддерживаемого MF_HISTOGRAM_CHANNEL_ битовых масок, как определено выше. ChannelMask указывает, для какого канала являются данные, который определяется любым из MF_HISTOGRAM_CHANNEL_ битовых масок.

Данные гистограммы — это массив ULONG , каждая из которых представляет количество пикселей, попадающих под набор тональных значений, классифицированных по ячейке. Данные в массиве должны начинаться с bin 0 до ячейки N-1, где N — это количество ячеек в гистограмме, например HistogramBlobHeader.Bins.

Для Windows 10, если поддерживается KSPROPERTY_CAMERACONTROL_EXTENDED_HISTOGRAM , должна быть как минимум гистограмма полного кадра с каналом Y, которая должна быть первой гистограммой в большом двоичном объекте гистограммы. Обратите внимание, что данные HistogramBlobHeader, HistogramHeader, HistogramDataHeader и Histogram описывают только формат большого двоичного объекта для атрибута MF_CAPTURE_METADATA_HISTOGRAM . Структура элемента метаданных для гистограммы (KSCAMERA_METADATA_ITEMHEADER + все полезные данные гистограммы) соответствует драйверу и должна быть выровнена по 8 байтам.

Требования

   
Верхняя часть mfapi.h

См. также раздел

HistogramBlobHeader

HistogramDataHeader

HistogramGrid