Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Удалить объекты из изображений можно с помощью удаления объектов. Модель принимает как изображение, так и маску с серой шкалой, указывающую на удаление объекта, удаляет маскированную область из изображения и заменяет стертую область фоном изображения.
Дополнительные сведения об API см. в справочнике по API для функций создания образов искусственного интеллекта.
Сведения о модерации содержимого см. в разделе "Безопасность содержимого" с помощью api создания искусственного интеллекта.
Это важно
Требования к манифесту пакета: Чтобы использовать API создания изображений Windows AI, ваше приложение должно быть упаковано в формате пакета MSIX с systemAIModels возможностью, объявленной в Package.appxmanifest. Кроме того, убедитесь, что атрибут манифеста MaxVersionTested установлен на актуальную версию Windows (например, 10.0.26226.0 или более позднюю), чтобы правильно поддерживать функции ИИ Windows. Использование старых значений может привести к ошибкам "Не объявленные приложением" при загрузке модели.
<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>
Пример удаления объекта Image
В следующем примере показано, как удалить объект из изображения. В примере предполагается, что у вас уже есть объекты растрового изображения программного обеспечения (softwareBitmap) для изображения и маски. Маска должна быть в формате Gray8, где каждому пикселю области, подлежащей удалению, присвоено значение 255, а всем остальным пикселям — 0.
- Убедитесь, что модель удаления объектов изображения доступна, вызвав метод GetReadyState и ожидая успешного возврата метода EnsureReadyAsync .
- После того как модель удаления объектов изображения будет доступна, создайте объект ImageObjectRemover , чтобы ссылаться на него.
- Наконец, отправьте изображение и маску в модель с помощью метода RemoveFromSoftwareBitmap , который возвращает окончательный результат.
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);
См. также
- Общие сведения об визуализации искусственного интеллекта
- Средство извлечения объектов изображений — используйте его для создания масок для объектов, которые нужно удалить
- Коллекция разработчиков ИИ
- Примеры API для Windows AI