Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Sie können ImageForegroundExtractor verwenden, um den Vordergrund eines Eingabebilds zu segmentieren und Features wie Hintergrundentfernung und Aufklebergenerierung zu aktivieren.
Die zurückgegebene Maske ist im Graustufen-8-Format. Pixelwerte reichen von 0 bis 255, wobei 0 Hintergrundpixel darstellt, 255 Vordergrundpixel darstellt und Zwischenwerte eine Mischung aus Vordergrund- und Hintergrundpixeln angeben.
Api-Details finden Sie in der API-Referenz für KI-Imageerstellungsfeatures.
Details zur Inhaltsmoderation finden Sie unter Inhaltssicherheit mit generativen AI-APIs.
Von Bedeutung
Paketmanifestanforderungen: Um Windows AI-Imageerstellungs-APIs zu verwenden, muss Ihre App als MSIX-Paket mit der systemAIModels in Ihrer Package.appxmanifestApp deklarierten Funktion verpackt werden. Stellen Sie außerdem sicher, dass das Attribut Ihres Manifests MaxVersionTested auf eine aktuelle Windows-Version festgelegt ist (z. B. 10.0.26226.0 oder höher), um die Windows AI-Features richtig zu unterstützen. Die Verwendung älterer Werte kann beim Laden des Modells zu Fehlern "Nicht durch App deklariert" führen.
<Dependencies>
<TargetDeviceFamily Name="Windows.Universal" MinVersion="10.0.17763.0" MaxVersionTested="10.0.26226.0" />
<TargetDeviceFamily Name="Windows.Desktop" MinVersion="10.0.17763.0" MaxVersionTested="10.0.26226.0" />
</Dependencies>
Generieren einer Maske aus einem Bitmapbild
- Rufen Sie GetReadyState auf, und warten Sie, bis EnsureReadyAsync erfolgreich abgeschlossen wurde, um zu bestätigen, dass das ImageForegroundExtractor-Objekt bereit ist.
- Rufen Sie nach abschluss des Modells CreateAsync auf, um ein ImageForegroundExtractor-Objekt zu instanziieren.
- Rufen Sie GetMaskFromSoftwareBitmap mit dem Eingabebild auf, um die Vordergrundmaske zu generieren.
using Microsoft.Windows.AI.Imaging;
using Microsoft.Windows.AI;
if (ImageForegroundExtractor.GetReadyState() == AIFeatureReadyState.NotReady)
{
var result = await ImageForegroundExtractor.EnsureReadyAsync();
if (result.Status != AIFeatureReadyResultState.Success)
{
throw result.ExtendedError;
}
}
var model = await ImageForegroundExtractor.CreateAsync();
// Insert your own softwareBitmap here.
var foregroundMask = model.GetMaskFromSoftwareBitmap(softwareBitmap);
#include <winrt/Microsoft.Graphics.Imaging.h>
#include <winrt/Microsoft.Windows.AI.Imaging.h>
#include <winrt/Windows.Graphics.Imaging.h>
#include <winrt/Windows.Foundation.h>
using namespace winrt::Microsoft::Graphics::Imaging;
using namespace winrt::Microsoft::Windows::AI.Imaging;
using namespace winrt::Windows::Graphics::Imaging;
using namespace winrt::Windows::Foundation;
if (ImageForegroundExtractor::GetReadyState() == AIFeatureReadyState::NotReady)
{
auto loadResult = ImageForegroundExtractor::EnsureReadyAsync().get();
if (loadResult.Status() != AIFeatureReadyResultState::Success)
{
throw winrt::hresult_error(loadResult.ExtendedError());
}
}
auto model = co_await ImageForegroundExtractor::CreateAsync();
// Insert your own softwareBitmap here.
auto foregroundMask = model.GetMaskFromSoftwareBitmap(softwareBitmap);