ImageProcessor é uma classe auxiliar para pré e pós-processamento do TensorImage
. Ele
pode transformar um TensorImage
em outro executando uma cadeia de ImageOperator
.
Exemplo de uso:
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);
AVISO: as instâncias de uma ImageProcessor
não são thread-safe com updateNumberOfRotations(int)
. A atualização do número de rotações e o processamento de imagens (usando
SequentialProcessor.process(T)
) precisam ser protegidos contra acesso simultâneo. É recomendável criar instâncias de ImageProcessor
separadas para cada linha de execução. Se várias linhas de execução acessarem um ImageProcessor
ao mesmo tempo, ele precisará ser sincronizado externamente.
Classes aninhadas
classe | ImageProcessor.Builder | O Builder cria um ImageProcessr, que pode ser executado mais tarde. |
Métodos públicos
RectF |
inverseTransform(RectF rect, int inputImageHeight, int inputImageWidth)
Transforma um retângulo do sistema de coordenadas da imagem de resultado para o da imagem de
entrada.
|
PointF |
inverseTransform(ponto PointF, int inputImageHeight, int inputImageWidth)
Transforma um ponto do sistema de coordenadas da imagem de resultado como o da imagem de entrada.
|
TensorImage | |
void |
updateNumberOfRotations(int k)
Atualiza o número de rotações para a primeira
Rot90Op neste ImageProcessor . |
sincronizado nulo |
updateNumberOfRotations(int k, ocorrência int)
|
Métodos herdados
Métodos públicos
public RectF inverseTransform (RectF rect, int inputImageHeight, int inputImageWidth)
Transforma um retângulo do sistema de coordenadas da imagem de resultado para o da imagem de entrada.
Parâmetros
rect | o retângulo do sistema de coordenadas de resultado. |
---|---|
inputImageHeight | a altura da imagem de entrada. |
inputImageWidth | a largura da imagem de entrada. |
Retorna
- o retângulo com as coordenadas do sistema de coordenadas da imagem de entrada.
public PointF inverseTransform (PointF point, int inputImageHeight, int inputImageWidth)
Transforma um ponto do sistema de coordenadas da imagem de resultado como o da imagem de entrada.
Parâmetros
point | o ponto do sistema de coordenadas de resultado. |
---|---|
inputImageHeight | a altura da imagem de entrada. |
inputImageWidth | a largura da imagem de entrada. |
Retorna
- o ponto com as coordenadas do sistema de coordenadas da imagem de entrada.
público TensorImage processo (TensorImage)
Processa um objeto TensorImage
com TensorOperator
preparado.
Parâmetros
imagem |
---|
Gera
IllegalArgumentException | quando a imagem não tem suporte de nenhuma operação. |
---|
public void updateNumberOfRotations (int k)
Atualiza o número de rotações para a primeira Rot90Op
neste ImageProcessor
.
AVISO: esse método não é thread-safe. A atualização do número de rotações e o processamento de imagens (usando SequentialProcessor.process(T)
) precisam ser protegidos contra acesso simultâneo com sincronização adicional.
Parâmetros
k | o número de rotações |
---|
Gera
IllegalStateException | se Rot90Op não tiver sido adicionado a este ImageProcessor
|
---|
public sync void updateNumberOfRotations (int k, ocorrência int)
Atualiza o número de rotações para o Rot90Op
especificado por occurrence
neste
ImageProcessor
.
AVISO: esse método não é thread-safe. A atualização do número de rotações e o processamento de imagens (usando SequentialProcessor.process(T)
) precisam ser protegidos contra acesso simultâneo com sincronização adicional.
Parâmetros
k | o número de rotações |
---|---|
ocorrência | o índice da Rot90Op perticular neste ImageProcessor . Por
exemplo, se o segundo Rot90Op precisar ser atualizado, occurrence precisará ser
definido como 1. |
Gera
IndexOutOfBoundsException | se occurrence for negativo ou não for menor que o número de Rot90Op nesse ImageProcessor |
---|---|
IllegalStateException | se Rot90Op não tiver sido adicionado a este ImageProcessor
|