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 | |
vuoto | updateNumberOfRotations (int k) Aggiorna il numero di rotazioni per il primo Rot90Op in questo ImageProcessor . |
vuoto sincronizzato | updateNumberOfRotations (int k, int occorrenza) |
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 |