-
Notifications
You must be signed in to change notification settings - Fork 2.9k
/
ImageLabelingActivity.kt
92 lines (81 loc) · 3.26 KB
/
ImageLabelingActivity.kt
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
80
81
82
83
84
85
86
87
88
89
90
91
92
/*
* Copyright 2020 Google LLC. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.google.example.mlkit.kotlin
import androidx.appcompat.app.AppCompatActivity
import com.google.mlkit.vision.common.InputImage
import com.google.mlkit.vision.label.ImageLabeler
import com.google.mlkit.vision.label.ImageLabeling
import com.google.mlkit.vision.label.defaults.ImageLabelerOptions
class ImageLabelingActivity : AppCompatActivity() {
private fun labelImages(image: InputImage) {
val options = ImageLabelerOptions.Builder()
.setConfidenceThreshold(0.8f)
.build()
val labeler = ImageLabeling.getClient(options)
// [START run_detector]
val result = labeler.process(image)
.addOnSuccessListener { labels ->
// Task completed successfully
// [START_EXCLUDE]
// [START get_labels]
for (label in labels) {
val text = label.text
val confidence = label.confidence
}
// [END get_labels]
// [END_EXCLUDE]
}
.addOnFailureListener { e ->
// Task failed with an exception
// ...
}
// [END run_detector]
}
private fun configureAndRunImageLabeler(image: InputImage) {
// [START on_device_image_labeler]
// To use default options:
val labeler = ImageLabeling.getClient(ImageLabelerOptions.DEFAULT_OPTIONS)
// Or, to set the minimum confidence required:
// val options = ImageLabelerOptions.Builder()
// .setConfidenceThreshold(0.7f)
// .build()
// val labeler = ImageLabeling.getClient(options)
// [END on_device_image_labeler]
// Process image with custom onSuccess() example
// [START process_image]
labeler.process(image)
.addOnSuccessListener { labels ->
// Task completed successfully
// ...
}
.addOnFailureListener { e ->
// Task failed with an exception
// ...
}
// [END process_image]
// Process image with example onSuccess()
labeler.process(image)
.addOnSuccessListener { labels ->
// [START get_image_label_info]
for (label in labels) {
val text = label.text
val confidence = label.confidence
val index = label.index
}
// [END get_image_label_info]
}
}
}