Share via


HistogrammHeader-Struktur (mfapi.h)

Die HistogramHeader-Struktur beschreibt das Blobformat für MF_CAPTURE_METADATA_HISTOGRAM.

Syntax

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

Members

Size

Größe dieses Headers + (HistogramDataHeader + Histogrammdaten folgend) * Anzahl der verfügbaren Kanäle.

Bins

Anzahl der Bins im Histogramm.

FourCC

Farbraum, von dem das Histogramm erfasst wird

ChannelMasks

Masken der Farbkanäle, für die das Histogramm gesammelt wird.

Grid

Raster, aus dem das Histogramm gesammelt wird.

Hinweise

Das MF_CAPTURE_METADATA_HISTOGRAM-Attribut enthält ein Histogramm, wenn ein Vorschaurahmen erfasst wird.

Für das Feld ChannelMasks geben die folgenden Bitmasken die verfügbaren Kanäle im Histogramm an:

#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

Jedes Blob kann mehrere Histogramme enthalten, die aus verschiedenen Regionen oder verschiedenen Farbräumen desselben Frames gesammelt wurden. Jedes Histogramm im Blob wird durch einen eigenen HistogramHeader identifiziert. Jedem Histogramm ist eine eigene Region und eine eigene Sensorausgabegröße zugeordnet. Beim Vollbildhistogramm entspricht die Region der in HistogramGrid angegebenen Sensorausgabegröße.

Histogrammdaten für alle verfügbaren Kanäle werden unter einem Histogramm gruppiert. Histogrammdaten für jeden Kanal werden durch einen HistogramDataHeader direkt über den Daten identifiziert. ChannelMasks gibt an, wie viele und welche Kanäle über die Histogrammdaten verfügen. Dabei handelt es sich um das bitweise OR der unterstützten MF_HISTOGRAM_CHANNEL_ Bitmasken, wie oben definiert. ChannelMask gibt an, für welchen Kanal die Daten verwendet werden, der durch eine der MF_HISTOGRAM_CHANNEL_ Bitmasken identifiziert wird.

Histogrammdaten sind ein Array von ULONG , wobei jeder Eintrag die Anzahl von Pixeln darstellt, die unter einen Satz von Tonwerten fallen, die nach dem Bin kategorisiert werden. Die Daten im Array sollten von bin 0 bis bin N-1 beginnen, wobei N die Anzahl der Bins im Histogramm ist, z. B. HistogramBlobHeader.Bins.

Wenn für Windows 10 KSPROPERTY_CAMERACONTROL_EXTENDED_HISTOGRAM unterstützt wird, muss mindestens ein Vollbildhistogramm mit Y-Kanal bereitgestellt werden, das das erste Histogramm im Histogrammblob sein sollte. Beachten Sie, dass histogramBlobHeader, HistogramHeader, HistogramDataHeader und Histogrammdaten nur das Blobformat für das attribut MF_CAPTURE_METADATA_HISTOGRAM beschreiben. Die Metadatenelementstruktur für das Histogramm (KSCAMERA_METADATA_ITEMHEADER + alle Histogrammmetadatennutzlast) entspricht dem Treiber und muss 8 Byte ausgerichtet sein.

Requirements (Anforderungen)

   
Kopfzeile mfapi.h

Weitere Informationen

HistogrammBlobHeader

HistogramDataHeader

HistogramGrid