0

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)
    }
}

}

Jabed Dhali
  • 167
  • 6

0 Answers0