ImageProcessor to klasa pomocnicza do wstępnego i końcowego przetwarzania TensorImage
. Może przekształcić TensorImage
w inny, wykonując łańcuch ImageOperator
.
Przykładowe użycie:
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);
OSTRZEŻENIE: instancje ImageProcessor
nie są bezpieczne dla wątków dzięki updateNumberOfRotations(int)
. Aktualizowanie liczby obrotów, a następnie przetwarzanie obrazów (za pomocą SequentialProcessor.process(T)
) musi być zabezpieczone przed równoczesnym dostępem. Zaleca się tworzenie oddzielnych instancji ImageProcessor
dla każdego wątku. Jeśli wiele wątków jednocześnie uzyskuje dostęp do ImageProcessor
, musi on być zsynchronizowany zewnętrznie.
Klasy zagnieżdżone
klasa | ImageProcessor.Builder | Konstruktor do tworzenia ImageProcessor, który można wykonać później. |
Metody publiczne
RectF | inverseTransform (RectF rect, int inputImageHeight, int inputImageWidth) Przekształca prostokąt z układu współrzędnych obrazu wynikowego z powrotem na jeden z obrazu wejściowego. |
PunktF | inverseTransform (punkt PointF, int inputImageHeight, int inputImageWidth) Przekształca punkt z układu współrzędnych obrazu wynikowego z powrotem na jeden z obrazu wejściowego. |
Obraz tensorowy | |
próżnia | updateNumberOfRotations (int k) Aktualizuje liczbę obrotów dla pierwszego Rot90Op w tym ImageProcessor . |
zsynchronizowana pustka | updateNumberOfRotations (int k, int wystąpienie) |
Metody odziedziczone
Metody publiczne
public RectF inverseTransform (RectF rect, int inputImageHeight, int inputImageWidth)
Przekształca prostokąt z układu współrzędnych obrazu wynikowego z powrotem na jeden z obrazu wejściowego.
Parametry
prostota | prostokąt z układu współrzędnych wynikowych. |
---|---|
inputImageWysokość | wysokość obrazu wejściowego. |
inputImageSzerokość | szerokość obrazu wejściowego. |
Zwroty
- prostokąt ze współrzędnymi z układu współrzędnych obrazu wejściowego.
public PointF inverseTransform (punkt PointF, int inputImageHeight, int inputImageWidth)
Przekształca punkt z układu współrzędnych obrazu wynikowego z powrotem na jeden z obrazu wejściowego.
Parametry
punkt | punkt z układu współrzędnych wynikowych. |
---|---|
inputImageWysokość | wysokość obrazu wejściowego. |
inputImageSzerokość | szerokość obrazu wejściowego. |
Zwroty
- punkt ze współrzędnymi z układu współrzędnych obrazu wejściowego.
publiczny proces TensorImage ( TensorImage obraz)
Przetwarza obiekt TensorImage
z przygotowanym TensorOperator
.
Parametry
obraz |
---|
Rzuty
Niedozwolony argumentWyjątek | jeśli obraz nie jest obsługiwany przez żaden op. |
---|
public void updateNumberOfRotations (int k)
Aktualizuje liczbę obrotów dla pierwszego Rot90Op
w tym ImageProcessor
.
UWAGA: ta metoda nie jest bezpieczna dla wątków. Aktualizowanie liczby obrotów, a następnie przetwarzanie obrazów (za pomocą SequentialProcessor.process(T)
) musi być zabezpieczone przed równoczesnym dostępem dodatkową synchronizacją.
Parametry
k | liczba obrotów |
---|
Rzuty
Nielegalny wyjątek stanu | jeśli Rot90Op nie został dodany do tego ImageProcessor |
---|
public zsynchronizowana void updateNumberOfRotations (int k, int wystąpienie)
Aktualizuje liczbę obrotów dla Rot90Op
określonej przez occurrence
w tym ImageProcessor
.
UWAGA: ta metoda nie jest bezpieczna dla wątków. Aktualizowanie liczby obrotów, a następnie przetwarzanie obrazów (za pomocą SequentialProcessor.process(T)
) musi być zabezpieczone przed równoczesnym dostępem dodatkową synchronizacją.
Parametry
k | liczba obrotów |
---|---|
występowanie | indeks perticular Rot90Op w tym ImageProcessor . Na przykład, jeśli drugi Rot90Op wymaga aktualizacji, occurrence powinno być ustawione na 1. |
Rzuty
IndexOutOfBoundsException | jeśli occurrence jest ujemne lub nie jest mniejsze niż liczba Rot90Op w tym ImageProcessor |
---|---|
Nielegalny wyjątek stanu | jeśli Rot90Op nie został dodany do tego ImageProcessor |