共用方式為


長條圖Header 結構 (mfapi.h)

長條圖Header結構描述MF_CAPTURE_METADATA_HISTOGRAM的 Blob 格式。

語法

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

每個 Blob 可以包含從不同區域收集的多個長條圖,或相同框架的不同色彩空間。 Blob 中的每個長條圖都會由它自己的 長條圖Header來識別。 每個長條圖都有自己的區域和感應器輸出大小相關聯。 針對完整框架長條圖,區域會符合 長條圖Grid中指定的感應器輸出大小。

所有可用通道的長條圖資料會分組在一個長條圖之下。 每個通道的長條圖資料是由緊接在資料上方的 HistogramDataHeader 來識別。 ChannelMasks指出有多少個通道以及哪些通道具有長條圖資料,也就是上述所支援MF_HISTOGRAM_CHANNEL_ 位元遮罩的位 OR。 ChannelMask指出資料所針對的通道,該通道是由任一 MF_HISTOGRAM_CHANNEL_ 位元遮罩所識別。

長條圖資料是 ULONG 的陣列,每個專案都代表落在一組音調值之下的圖元數目,依量化分類。 陣列中的資料應該從 bin 0 開始到 bin N-1,其中 N 是長條圖中的 bin 數目,例如 HistogramBlobHeader.Bins

針對Windows 10,如果支援KSPROPERTY_CAMERACONTROL_EXTENDED_HISTOGRAM,則至少必須提供具有 Y 通道的完整框架長條圖,這應該是長條圖 Blob 中的第一個長條圖。 請注意, HistogramBlobHeaderHistogramHeaderHistogramDataHeader 和 Histogram 資料只會描述 MF_CAPTURE_METADATA_HISTOGRAM 屬性的 Blob 格式。 長條圖的中繼資料專案結構 (KSCAMERA_METADATA_ITEMHEADER + 所有長條圖中繼資料承載) 最多為驅動程式,且必須對齊 8 位元組。

需求

   
標頭 mfapi.h

另請參閱

HistogramBlobHeader

HistogramDataHeader

長條圖Grid