无法裁剪张量流精检测到的对象的图像。
我正在使用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,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,cameraImage.getHeight()),75,baOutputStream);
byte[] byteForBitmap = baOutputStream.toByteArray();
Bitmap bitmap = BitmapFactory.decodeByteArray(byteForBitmap,byteForBitmap.length);
imageViewResult.setImageBitmap(bitmap);
cameraImage.close();
bitmap = Bitmap.createScaledBitmap(bitmap,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%,然后返回裁剪的目标图像)。