ImageProcessor

Öffentliche Klasse ImageProcessor

ImageProcessor ist eine Hilfsklasse für die Vorverarbeitung und Nachbearbeitung von TensorImage. Sie könnte durch Ausführen einer Kette von ImageOperator eine TensorImage in eine andere umwandeln.

Verwendungsbeispiel:

   ImageProcessor processor = new ImageProcessor.Builder()
       .add(new ResizeOp(224, 224, ResizeMethod.NEAREST_NEIGHBOR)
       .add(new Rot90Op())
       .add(new NormalizeOp(127.5f, 127.5f))
       .build();
   TensorImage anotherTensorImage = processor.process(tensorImage);
 

WARNUNG: Instanzen von ImageProcessor sind mit updateNumberOfRotations(int) nicht Thread-sicher. Das Aktualisieren der Anzahl der Rotationen und die anschließende Verarbeitung von Images (mit SequentialProcessor.process(T)) muss vor gleichzeitigem Zugriff geschützt sein. Es empfiehlt sich, für jeden Thread eine separate ImageProcessor-Instanz zu erstellen. Wenn mehrere Threads gleichzeitig auf einen ImageProcessor zugreifen, muss dieser extern synchronisiert werden.

Verschachtelte Klassen

Klasse ImageProcessor.Builder Der Builder zum Erstellen eines ImageProcessor, der später ausgeführt werden kann. 

Public Methods

RectF
inverseTransform(RectF rect, int inputImageHeight, int inputImageWidth)
Wandelt ein Rechteck vom Koordinatensystem des Ergebnisbilds wieder in das des Eingabebilds um.
PointF
inverseTransform(PointF-Punkt, int-inputImageHeight, int-inputImageWidth)
Wandelt einen Punkt vom Koordinatensystem des Ergebnisbilds wieder in das des Eingabebilds um.
TensorImage
process(TensorImage-Image)
Verarbeitet ein TensorImage-Objekt mit vorbereitetem TensorOperator.
void
updateNumberOfRotations(int k)
Aktualisiert die Anzahl der Umdrehungen für die erste Rot90Op in dieser ImageProcessor.
synchronisiert void
updateNumberOfRotations(int k, intaktes Vorkommen)
Aktualisiert die Anzahl der Umdrehungen für den durch occurrence in diesem ImageProcessor angegebenen Rot90Op.

Übernommene Methoden

Public Methods

public RectF inverseTransform (RectF rect, int inputImageHeight, int inputImageWidth)

Wandelt ein Rechteck vom Koordinatensystem des Ergebnisbilds wieder in das des Eingabebilds um.

Parameter
rect Rechtecks aus dem Ergebniskoordinatensystem.
inputImageHeight die Höhe des Eingabebilds.
inputImageWidth die Breite des Eingabebilds.
Rückgabe
  • Rechtecks mit den Koordinaten aus dem Koordinatensystem des Eingabebilds hinzu.

public PointF inverseTransform (PointF point, int inputImageHeight, int inputImageWidth)

Wandelt einen Punkt vom Koordinatensystem des Ergebnisbilds wieder in das des Eingabebilds um.

Parameter
point Punkt aus dem Ergebniskoordinatensystem.
inputImageHeight die Höhe des Eingabebilds.
inputImageWidth die Breite des Eingabebilds.
Rückgabe
  • den Punkt mit den Koordinaten aus dem Koordinatensystem des Eingabebildes.

public TensorImage Prozess (TensorImage-Image)

Verarbeitet ein TensorImage-Objekt mit vorbereitetem TensorOperator.

Parameter
Image
Löst aus
IllegalArgumentException wenn das Bild von keinem Vorgang unterstützt wird.

public void updateNumberOfRotations (int k)

Aktualisiert die Anzahl der Umdrehungen für die erste Rot90Op in dieser ImageProcessor.

WARNUNG:Diese Methode ist nicht Thread-sicher. Das Aktualisieren der Anzahl der Rotationen und die anschließende Verarbeitung von Images (mit SequentialProcessor.process(T)) muss mit einer zusätzlichen Synchronisierung vor gleichzeitigem Zugriff geschützt sein.

Parameter
k die Anzahl der Umdrehungen
Löst aus
IllegalStateException wenn Rot90Op diesem ImageProcessor nicht hinzugefügt wurde

öffentlich synchronisiert void updateNumberOfRotations (int k, int Vorkommen)

Aktualisiert die Anzahl der Umdrehungen für den durch occurrence in diesem ImageProcessor angegebenen Rot90Op.

WARNUNG:Diese Methode ist nicht Thread-sicher. Das Aktualisieren der Anzahl der Rotationen und die anschließende Verarbeitung von Images (mit SequentialProcessor.process(T)) muss mit einer zusätzlichen Synchronisierung vor gleichzeitigem Zugriff geschützt sein.

Parameter
k die Anzahl der Umdrehungen
Vorkommen Der Index der pertikularen Rot90Op in dieser ImageProcessor. Wenn beispielsweise die zweite Rot90Op aktualisiert werden muss, sollte occurrence auf 1 festgelegt werden.
Löst aus
IndexOutOfBoundsException wenn occurrence negativ oder nicht kleiner als die Anzahl von Rot90Op in diesem ImageProcessor ist
IllegalStateException wenn Rot90Op diesem ImageProcessor nicht hinzugefügt wurde