-
Notifications
You must be signed in to change notification settings - Fork 395
/
LandmarkRecognitionActivity.java
79 lines (68 loc) · 3.55 KB
/
LandmarkRecognitionActivity.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
package com.google.firebase.example.mlkit;
import android.graphics.Rect;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import com.google.android.gms.tasks.OnFailureListener;
import com.google.android.gms.tasks.OnSuccessListener;
import com.google.android.gms.tasks.Task;
import com.google.firebase.ml.vision.FirebaseVision;
import com.google.firebase.ml.vision.cloud.FirebaseVisionCloudDetectorOptions;
import com.google.firebase.ml.vision.cloud.landmark.FirebaseVisionCloudLandmark;
import com.google.firebase.ml.vision.cloud.landmark.FirebaseVisionCloudLandmarkDetector;
import com.google.firebase.ml.vision.common.FirebaseVisionImage;
import com.google.firebase.ml.vision.common.FirebaseVisionLatLng;
import java.util.List;
public class LandmarkRecognitionActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
private void recognizeLandmarksCloud(FirebaseVisionImage image) {
// [START set_detector_options_cloud]
FirebaseVisionCloudDetectorOptions options = new FirebaseVisionCloudDetectorOptions.Builder()
.setModelType(FirebaseVisionCloudDetectorOptions.LATEST_MODEL)
.setMaxResults(30)
.build();
// [END set_detector_options_cloud]
// [START get_detector_cloud]
FirebaseVisionCloudLandmarkDetector detector = FirebaseVision.getInstance()
.getVisionCloudLandmarkDetector();
// Or, to change the default settings:
// FirebaseVisionCloudLandmarkDetector detector = FirebaseVision.getInstance()
// .getVisionCloudLandmarkDetector(options);
// [END get_detector_cloud]
// [START fml_run_detector_cloud]
Task<List<FirebaseVisionCloudLandmark>> result = detector.detectInImage(image)
.addOnSuccessListener(new OnSuccessListener<List<FirebaseVisionCloudLandmark>>() {
@Override
public void onSuccess(List<FirebaseVisionCloudLandmark> firebaseVisionCloudLandmarks) {
// Task completed successfully
// [START_EXCLUDE]
// [START get_landmarks_cloud]
for (FirebaseVisionCloudLandmark landmark: firebaseVisionCloudLandmarks) {
Rect bounds = landmark.getBoundingBox();
String landmarkName = landmark.getLandmark();
String entityId = landmark.getEntityId();
float confidence = landmark.getConfidence();
// Multiple locations are possible, e.g., the location of the depicted
// landmark and the location the picture was taken.
for (FirebaseVisionLatLng loc: landmark.getLocations()) {
double latitude = loc.getLatitude();
double longitude = loc.getLongitude();
}
}
// [END get_landmarks_cloud]
// [END_EXCLUDE]
}
})
.addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
// Task failed with an exception
// ...
}
});
// [END fml_run_detector_cloud]
}
}