Невозможно обрезать изображение объекта, которое обнаружено тензорным потоком lite.
Я использую библиотеку ar.sceneform для обновления фрейма следующим образом.
private void onUpdateFrame(FrameTime frameTime) {
try {
Frame frame = fragment.getArSceneView().getArFrame();
cameraImage = frame.acquireCameraImage();
//The camera image received is in YUV YCbCr Format. Get buffers for each of the planes and use them to create a new bytearray defined by the size of all three buffers combined
ByteBuffer cameraPlaneY = cameraImage.getPlanes()[0].getBuffer();
ByteBuffer cameraPlaneU = cameraImage.getPlanes()[1].getBuffer();
ByteBuffer cameraPlaneV = cameraImage.getPlanes()[2].getBuffer();
//Use the buffers to create a new byteArray that
byte[] compositeByteArray = new byte[(cameraPlaneY.capacity() + cameraPlaneU.capacity() + cameraPlaneV.capacity())];
cameraPlaneY.get(compositeByteArray, 0, cameraPlaneY.capacity());
cameraPlaneU.get(compositeByteArray, cameraPlaneY.capacity(), cameraPlaneU.capacity());
cameraPlaneV.get(compositeByteArray, cameraPlaneY.capacity() + cameraPlaneU.capacity(), cameraPlaneV.capacity());
ByteArrayOutputStream baOutputStream = new ByteArrayOutputStream();
YuvImage yuvImage = new YuvImage(compositeByteArray, ImageFormat.NV21, cameraImage.getWidth(), cameraImage.getHeight(), null);
yuvImage.compressToJpeg(new Rect(0, 0, cameraImage.getWidth(), cameraImage.getHeight()), 75, baOutputStream);
byte[] byteForBitmap = baOutputStream.toByteArray();
Bitmap bitmap = BitmapFactory.decodeByteArray(byteForBitmap, 0, byteForBitmap.length);
imageViewResult.setImageBitmap(bitmap);
cameraImage.close();
bitmap = Bitmap.createScaledBitmap(bitmap, INPUT_SIZE, INPUT_SIZE, false);
imageViewResult.setImageBitmap(bitmap);
final List<Classifier.Recognition> results = classifier.recognizeImage(bitmap);
Log.d("resultsize", String.valueOf(results.size()));
textViewResult.setText(String.valueOf(results));
}catch (NotYetAvailableException e) {
Log.e("erroroccur",e.toString());
};
}
Как получить изображение после получения результата List и сравнить вероятность объекта, если оно больше 80%, затем вернуть обрезанное изображение объекта.