I am trying to use HMS Image Segmentation Library for human body segmentatinon. After processing input image, getMasks() function returns UnsafeMutablePointer<UInt8> data. I want to generate mask image from the given data, but unfortunately failed. Till now I haven't found any solution that can convert this data to image data.
class HMS_ImageSegmentationService : ObservableObject {
let humanBody_setting = MLImageSegmentationSetting()
let humanBody_analyzer = MLImageSegmentationAnalyzer.sharedInstance()
init() {
humanBody_setting.exact = true
humanBody_setting.analyzerType = .body
humanBody_setting.scene = .all
humanBody_analyzer.setImageSegmentationAnalyzer(humanBody_setting)
}
public func getHumanBodyClip(image: UIImage, completion: @escaping((UIImage)->Void)) {
let mlFrame = MLFrame(image: image)
let size = image.size
humanBody_analyzer.asyncAnalyse(mlFrame) { mlImageSegmentation in
let maskPointer = mlImageSegmentation.getMasks()!
let resImage = convertToImage(maskPointer) // I want to write this function
completion(resImg ?? image)
} addOnFailureListener: { errInt, errStr in
printIfDebug("\(errInt) \(errStr)")
completion(image)
}
}
}