Class ImageLabeler

java.lang.Object
com.codename1.ai.vision.ImageLabeler
All Implemented Interfaces:
VisionAnalyzer<ImageLabel[]>, AutoCloseable

public final class ImageLabeler extends Object

Classifies what an image contains, as ranked labels with confidences.

ImageLabeler labeler = new ImageLabeler(new VisionOptions()
        .minimumConfidence(0.6f)
        .maximumResults(5));

labeler.process(VisionImage.fromFile(photoPath)).ready(labels -> {
    StringBuilder summary = new StringBuilder();
    for (ImageLabel label : labels) {
        summary.append(label.getText())
               .append(" (")
               .append(Math.round(label.getConfidence() * 100))
               .append("%)\n");
    }
    resultLabel.setText(summary.toString());
    labeler.close();
}).except(error -> {
    Log.e(error);
    labeler.close();
});

The label text is the portable part. ImageLabel.getIndex() is a model class index that differs between backends and is -1 on Apple Vision, so branch on ImageLabel.getText().

  • Constructor Details

    • ImageLabeler

      public ImageLabeler()
      Creates an analyzer using the platform default backend and options.
      See Also:
    • ImageLabeler

      public ImageLabeler(VisionOptions options)
      Creates a reusable analyzer with explicit backend and result options.
      Parameters:
      options - configuration captured by this analyzer; null uses defaults
  • Method Details

    • isSupported

      public final boolean isSupported()
      Description copied from interface: VisionAnalyzer
      Tests the exact feature/backend pair configured for this analyzer.
      Specified by:
      isSupported in interface VisionAnalyzer<T>
      Returns:
      whether this analyzer's feature/backend is available and open
    • process

      public final AsyncResource<ImageLabel[]> process(VisionImage image)
      Starts one analysis using the retained native backend.
      Specified by:
      process in interface VisionAnalyzer<T>
      Parameters:
      image - immutable encoded or raw input
      Returns:
      asynchronous typed result
    • close

      public final void close()
      Idempotently releases the retained native backend.
      Specified by:
      close in interface AutoCloseable
      Specified by:
      close in interface VisionAnalyzer<T>