Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Aby usunąć obiekty z obrazów, można użyć funkcji Wymazywania obiektów. Model przyjmuje zarówno obraz, jak i maskę w skali szarości wskazującą obiekt do usunięcia, usuwa zamaskowany obszar z obrazu i wypełnia wymazany obszar tłem obrazu.
Aby uzyskać szczegółowe informacje o interfejsie API, zobacz dokumentację interfejsu API dotyczącą funkcji przetwarzania obrazów AI.
Aby uzyskać szczegółowe informacje na temat moderowania zawartości, zobacz Bezpieczeństwo zawartości za pomocą interfejsów API generowania sztucznej inteligencji.
Ważne
Wymagania manifestu pakietu: aby korzystać z interfejsów API tworzenia obrazów sztucznej inteligencji systemu Windows, aplikacja musi być spakowana jako pakiet MSIX z funkcją systemAIModels zadeklarowaną w pliku Package.appxmanifest. Ponadto upewnij się, że atrybut manifestu MaxVersionTested jest ustawiony na najnowszą wersję systemu Windows (np 10.0.26226.0 . lub nowszą), aby prawidłowo obsługiwać funkcje sztucznej inteligencji systemu Windows. Użycie starszych wartości może spowodować błędy "Nie zadeklarowane przez aplikację" podczas ładowania modelu.
<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>
Przykład wymazywania obiektu obrazu
W poniższym przykładzie pokazano, jak usunąć obiekt z obrazu. W tym przykładzie przyjęto założenie, że masz już obiekty map bitowych oprogramowania (softwareBitmap) dla obrazu i maski. Maska musi być w formacie Gray8 z każdym pikselem obszaru do usunięcia ustawionym na 255, a wszystkie pozostałe piksele mają wartość 0.
- Upewnij się, że model wymazywania obiektów obrazu jest dostępny, wywołując metodę GetReadyState i czekając na pomyślne zwrócenie metody EnsureReadyAsync .
- Po udostępnieniu modelu wymazywania obiektu obrazu utwórz obiekt ImageObjectRemover , aby się do niego odwoływać.
- Na koniec prześlij obraz i maskę do modelu przy użyciu metody RemoveFromSoftwareBitmap , która zwraca wynik końcowy.
using Microsoft.Graphics.Imaging;
using Microsoft.Windows.AI;
using Microsoft.Windows.Management.Deployment;
using Windows.Graphics.Imaging;
if (ImageObjectRemover.GetReadyState() == AIFeatureReadyState.NotReady)
{
var result = await ImageObjectRemover.EnsureReadyAsync();
if (result.Status != AIFeatureReadyResultState.Success)
{
throw result.ExtendedError;
}
}
ImageObjectRemover imageObjectRemover = await ImageObjectRemover.CreateAsync();
SoftwareBitmap finalImage = imageObjectRemover.RemoveFromSoftwareBitmap(imageBitmap, maskBitmap); // Insert your own imagebitmap and maskbitmap
#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 (ImageObjectRemover::GetReadyState() == AIFeatureReadyState::NotReady)
{
auto loadResult = ImageObjectRemover::EnsureReadyAsync().get();
if (loadResult.Status() != AIFeatureReadyResultState::Success)
{
throw winrt::hresult_error(loadResult.ExtendedError());
}
}
ImageObjectRemover imageObjectRemover = ImageObjectRemover::CreateAsync().get();
// Insert your own imagebitmap and maskbitmap
Windows::Graphics::Imaging::SoftwareBitmap buffer =
imageObjectRemover.RemoveFromSoftwareBitmap(imageBitmap, maskBitmap);
Zobacz także
- Obrazowanie sztucznej inteligencji — omówienie
- Moduł wyodrębniania obiektów obrazów — służy do generowania masek dla obiektów, które chcesz usunąć
- Galeria deweloperów sztucznej inteligencji
- Przykłady interfejsu API sztucznej inteligencji systemu Windows