Я хочу обрезать лицо, обнаруженное по изображению, которое я сделал с моего телефона.Я использую Google Vision API для определения лица.Я видел несколько вопросов, похожих на мои, но они используют openCV.
Я пытался добавить Bitmap.createBitmap ();
, но он может принимать только значения int.но мои значения имеют десятичное число, поэтому это число с плавающей точкой.
это мой код для обнаружения лица:
private void scanFaces(){
Bitmap bitmap = BitmapFactory.decodeFile(pathToFile);
if (detector.isOperational() && bitmap != null) {
editedBitmap = Bitmap.createBitmap(bitmap.getWidth(), bitmap
.getHeight(), bitmap.getConfig());
float scale = getResources().getDisplayMetrics().density;
Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG);
paint.setColor(Color.rgb(255, 61, 61));
paint.setTextSize((int) (14 * scale));
paint.setShadowLayer(1f, 0f, 1f, Color.WHITE);
paint.setStyle(Paint.Style.STROKE);
paint.setStrokeWidth(3f);
Canvas canvas = new Canvas(editedBitmap);
canvas.drawBitmap(bitmap, 0, 0, paint);
Frame frame = new Frame.Builder().setBitmap(editedBitmap).build();
SparseArray<Face> faces = detector.detect(frame);
}
if (faces.size() == 0) {
deleteMediaFile();
Intent intent = new Intent(FaceRegistration.this, NoFaceDetected.class);
startActivity(intent);
}
else {
Face face = faces.valueAt(index);
canvas.drawRect(
face.getPosition().x,
face.getPosition().y,
face.getPosition().x + face.getWidth(),
face.getPosition().y + face.getHeight(), paint);
imageView.setImageBitmap(editedBitmap);
}
} else {
Toast.makeText(getApplicationContext(),"could not set up detector!" , Toast.LENGTH_SHORT).show();
}
}