Lezen in het Engels

Delen via


Histogrameffect

Gebruik het histogrameffect om een histogram te genereren voor de invoer bitmap op basis van het opgegeven aantal bins.

De CLSID voor dit effect is CLSID_D2D1Histogram.

Voorbeeld

Voor
de afbeelding vóór het effect.
Grafiek van de uitvoergegevens van het histogram
de afbeelding na de transformatie.
ComPtr<ID2D1Effect> histogramEffect;
m_d2dContext->CreateEffect(CLSID_D2D1Histogram, &histogramEffect);

histogramEffect->SetInputEffect(0, m_2DAffineTransformEffectRight.Get());
histogramEffect->SetValue(D2D1_HISTOGRAM_PROP_CHANNEL_SELECT, D2D1_CHANNEL_SELECTOR_G);

m_d2dContext->BeginDraw();
m_d2dContext->DrawImage(histogramEffect.Get());
m_d2dContext->EndDraw();

// The histogram data is only available once the effect has been 'drawn'.
int histogramBinCount;

HRESULT hr = histogramEffect->GetValue(D2D1_HISTOGRAM_PROP_NUM_BINS, &histogramBinCount);

float *histogramData = new float[histogramBinCount];
hr = histogramEffect->GetValue(D2D1_HISTOGRAM_PROP_HISTOGRAM_OUTPUT, 
                               reinterpret_cast<BYTE*>(histogramData), 
                               histogramBinCount * sizeof(float));

Effecteigenschappen

Hier volgt de vergelijking om de uitvoer te genereren.

de vergelijking om de uitvoer van het histogrameffect te genereren.

i wordt geëvalueerd van 0 tot het aantal klassen. Het effect genereert een histogram voor pixelwaarden tussen 0 en 1. Waarden buiten dit bereik worden vastgeklemd in het bereik. Het bereik van een bepaalde bucket is afhankelijk van het aantal buckets. Dit effect werkt op rechte bitmap pixels. De kleurkanalen van de invoer bitmap worden gedeeld door het alfakanaal om dit effect te berekenen.

Weergavenaam en indexenumeratie Type en standaardwaarde Beschrijving
NumBins
D2D1_HISTOGRAM_PROP_NUM_BINS
UINT32
256
Hiermee geeft u het aantal opslaglocaties op dat wordt gebruikt voor het histogram. Het bereik van intensiteitswaarden die in een bepaalde bucket vallen, is afhankelijk van het aantal opgegeven buckets.
ChannelSelect
D2D1_HISTOGRAM_PROP_CHANNEL_SELECT
D2D1_CHANNEL_SELECTOR
D2D1_CHANNEL_SELECTOR_R
Hiermee geeft u het kanaal op dat wordt gebruikt om het histogram te genereren. Dit effect heeft één gegevensuitvoer die overeenkomt met het opgegeven kanaal. Zie Kanaalkiezers voor meer informatie.
HistogramOutput
D2D1_HISTOGRAM_PROP_HISTOGRAM_OUTPUT
FLOAT[]
Alleen uitvoereigenschap.
De uitvoermatrix.

Kanaalkiezers

Opsomming Beschrijving
D2D1_CHANNEL_SELECTOR_R Het effect genereert de histogramuitvoer op basis van het rode kanaal.
D2D1_CHANNEL_SELECTOR_G Het effect genereert de histogramuitvoer op basis van het groene kanaal.
D2D1_CHANNEL_SELECTOR_B Het effect genereert de histogramuitvoer op basis van het blauwe kanaal.
D2D1_CHANNEL_SELECTOR_A Het effect genereert de histogramuitvoer op basis van het alfakanaal.

Gegevensuitvoer

Dit effect voert een FLOAT[] uit, met het aantal elementen dat overeenkomt met het aantal opgegeven bins. Elk element in float[] is een float. De waarde van het element komt overeen met het aantal elementen in die bin.

Opmerkingen

Notitie

De methode CreateEffect mislukt als het apparaat directCompute niet ondersteunt en HRESULT = D2DERR_INSUFFICIENT_DEVICE_CAPABILITIES retourneert. Alle DirectX11-kaarten en DirectX10-kaarten die DirectCompute ondersteunen, kunnen het effect gebruiken.

Eisen

Eis Waarde
Minimaal ondersteunde client Windows 8 en Platform Update voor Windows 7 [desktop-apps | Windows Store-apps]
Minimaal ondersteunde server Windows 8 en Platform Update voor Windows 7 [desktop-apps | Windows Store-apps]
Rubriek d2d1effects.h
Bibliotheek d2d1.lib, dxguid.lib

ID2D1Effect-