ImageProcessor

ImageProcessor della classe pubblica

ImageProcessor è una classe helper per la preelaborazione e la postelaborazione TensorImage . Potrebbe trasformare un TensorImage in un altro eseguendo una catena di ImageOperator .

Esempio di utilizzo:

   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);
 

ATTENZIONE: le istanze di un ImageProcessor non sono thread-safe con updateNumberOfRotations(int) . L'aggiornamento del numero di rotazioni e quindi l'elaborazione delle immagini (utilizzando SequentialProcessor.process(T) ) deve essere protetto dall'accesso simultaneo. Si consiglia di creare istanze ImageProcessor separate per ciascun thread. Se più thread accedono contemporaneamente a un ImageProcessor , è necessario sincronizzarlo esternamente.

Classi nidificate

classe ImageProcessor.Builder Il Builder per creare un ImageProcessor, che potrebbe essere eseguito in seguito.

Metodi pubblici

RettF
inverseTransform (RectF rect, int inputImageHeight, int inputImageWidth)
Trasforma un rettangolo dal sistema di coordinate dell'immagine risultante a quello dell'immagine di input.
PuntoF
inverseTransform (punto PointF, int inputImageHeight, int inputImageWidth)
Trasforma un punto dal sistema di coordinate dell'immagine risultante a quello dell'immagine di input.
TensorImage
processo (immagine TensorImage )
Elabora un oggetto TensorImage con TensorOperator preparato.
vuoto
updateNumberOfRotations (int k)
Aggiorna il numero di rotazioni per il primo Rot90Op in questo ImageProcessor .
vuoto sincronizzato
updateNumberOfRotations (int k, int occorrenza)
Aggiorna il numero di rotazioni per Rot90Op specificato occurrence in questo ImageProcessor .

Metodi ereditati

Metodi pubblici

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

Trasforma un rettangolo dal sistema di coordinate dell'immagine risultante a quello dell'immagine di input.

Parametri
rect il rettangolo dal sistema di coordinate del risultato.
inputImageHeight l'altezza dell'immagine in ingresso.
inputImageWidth la larghezza dell'immagine in ingresso.
ritorna
  • il rettangolo con le coordinate dal sistema di coordinate dell'immagine di input.

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

Trasforma un punto dal sistema di coordinate dell'immagine risultante a quello dell'immagine di input.

Parametri
punto il punto dal sistema di coordinate del risultato.
inputImageHeight l'altezza dell'immagine in ingresso.
inputImageWidth la larghezza dell'immagine in ingresso.
ritorna
  • il punto con le coordinate dal sistema di coordinate dell'immagine di input.

processo TensorImage pubblico (immagine TensorImage )

Elabora un oggetto TensorImage con TensorOperator preparato.

Parametri
Immagine
Lancia
IllegalArgumentException se l'immagine non è supportata da nessuna op.

public void updateNumberOfRotations (int k)

Aggiorna il numero di rotazioni per il primo Rot90Op in questo ImageProcessor .

ATTENZIONE: questo metodo non è thread-safe. L'aggiornamento del numero di rotazioni e quindi l'elaborazione delle immagini (utilizzando SequentialProcessor.process(T) ) deve essere protetto dall'accesso simultaneo con una sincronizzazione aggiuntiva.

Parametri
K il numero di rotazioni
Lancia
IllegalStateException se Rot90Op non è stato aggiunto a questo ImageProcessor

aggiornamento pubblico sincronizzato voidNumberOfRotations ( int k, int occorrenza)

Aggiorna il numero di rotazioni per Rot90Op specificato occurrence in questo ImageProcessor .

ATTENZIONE: questo metodo non è thread-safe. L'aggiornamento del numero di rotazioni e quindi l'elaborazione delle immagini (utilizzando SequentialProcessor.process(T) ) deve essere protetto dall'accesso simultaneo con una sincronizzazione aggiuntiva.

Parametri
K il numero di rotazioni
occorrenza l'indice del particolare Rot90Op in questo ImageProcessor . Ad esempio, se è necessario aggiornare il secondo Rot90Op , occurrence deve essere impostata su 1.
Lancia
IndexOutOfBoundsException se occurrence è negativa o non è inferiore al numero di Rot90Op in questo ImageProcessor
IllegalStateException se Rot90Op non è stato aggiunto a questo ImageProcessor