Я удаляю фон из изображения, содержащего хотя бы одно человеческое тело. Я применяю маску к UIImage и успешно маскирую изображение, содержащее только человеческое тело с прозрачным фоном, но если я попытался преобразовать обратно в UIImage после применения маски, я получаю черно-белое обрезанное изображение.
Я использую этот фрагмент, чтобы применить маску и получить результат как UIImage
func maskImage(image:UIImage, mask:(UIImage))->UIImage{
let imageReference = image.cgImage
let maskReference = mask.cgImage
let imageMask = CGImage(maskWidth: maskReference!.width,
height: maskReference!.height,
bitsPerComponent: maskReference!.bitsPerComponent,
bitsPerPixel: maskReference!.bitsPerPixel,
bytesPerRow: maskReference!.bytesPerRow,
provider: maskReference!.dataProvider!, decode: nil, shouldInterpolate: true)
let maskedReference = imageReference!.masking(imageMask!)
let maskedImage = UIImage(cgImage:maskedReference!)
return maskedImage
}
но я получаю черно-белое изображение только с человеческим телом вместо цветного.