Вырежьте лицо из растрового изображения, используя Firebase ML Vision Face Model - PullRequest
0 голосов
/ 27 октября 2018

Я реализовал Firebase ML Vision Face Model и она работает нормально.Я создаю путь из face.getContour(FirebaseVisionFaceContour.FACE).points

Вот мой код

val faceContourPoints: List<FirebaseVisionPoint> = face.getContour(FirebaseVisionFaceContour.FACE).points ?: ArrayList()
val path = Path()

for (i in 1..(faceContourPoints.size - 1)) {
    val oldPoint = faceContourPoints.get(i - 1)
    val currPoint = faceContourPoints.get(i)
    path.moveTo(oldPoint.x, oldPoint.y)
    path.lineTo(currPoint.x, currPoint.y)
}
path.close()                    
shapeCrop(editedBitmap, path)

И в моей функции shapeCrop я взял ссылку из этой ссылки и ее работу, когдаЯ рисую круг, но он не работает с моим путем.Это очищает все.Вот моя функция shapeCrop () -

fun shapeCrop(src:Bitmap, path: Path){
    val output = Bitmap.createBitmap(src.width, src.height, Bitmap.Config.ARGB_8888)
    val canvas = Canvas(output)
    val paint = Paint(Paint.ANTI_ALIAS_FLAG)
    paint.color = -0x1000000

    canvas.drawPath(path, paint)
    paint.xfermode = PorterDuffXfermode(PorterDuff.Mode.SRC_IN)

    canvas.drawBitmap(src, 0f, 0f, paint)
    imageView.setImageBitmap(output)
}

Я также попробовал решение из этого ответа stackoverflow, но опять-таки он работает, когда я рисую круг, но ничего не происходит, когда я рисуюпуть, даже не очищая мое растровое изображение.

Я уверен, что мое растровое изображение в порядке, возможно, что-то не так с моим путем.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...