TensorImage

TensorImage de clase pública

TensorImage es la clase contenedora para el objeto Imagen. Cuando se usan utilidades de procesamiento de imágenes en la biblioteca TFLite.support, es común convertir objetos de imagen en tipos variantes a TensorImage al principio.

Actualmente, solo se admiten imágenes RGB y el canal A siempre se ignora.

Detalles del almacenamiento de datos: un objeto TensorImage puede tener 2 posibles fuentes de verdad: un Bitmap de bits o un TensorBuffer . TensorImage mantiene el estado y solo convierte uno a otro cuando es necesario. Un caso de uso típico de TensorImage es cargar primero una imagen de Bitmap de bits, luego procesarla con ImageProcessor y finalmente obtener el ByteBuffer subyacente de TensorBuffer e introducirlo en el intérprete de TFLite.

IMPORTANTE: para lograr el mejor rendimiento, TensorImage evita copiar datos siempre que sea posible. Por lo tanto, no posee sus datos. Las personas que llaman no deben modificar los objetos de datos que se pasan a load(Bitmap) o load(TensorBuffer, ColorSpaceType) .

IMPORTANTE: no se ha demostrado que todos los métodos sean seguros para subprocesos.

Constructores Públicos

TensorImage ()
Inicializa un objeto TensorImage .
TensorImage (tipo de datos tipo de datos )
Inicializa un objeto TensorImage con el tipo de datos especificado.

Métodos públicos

TensorImage estático
createFrom ( TensorImage src, tipo de datos tipo de datos)
Crea una copia profunda de un TensorImage dado con el tipo de datos deseado.
TensorImage estático
fromBitmap (mapa de bits de mapa de bits)
Inicializa un objeto TensorImage de DataType.UINT8 con un Bitmap de bits.
mapa de bits
obtener mapa de bits ()
Devuelve una representación de Bitmap de bits de este TensorImage .
Buffer de bytes
getBuffer ()
Devuelve una representación de ByteBuffer de este TensorImage con el tipo de datos esperado.
ColorSpaceType
obtenerTipoEspacioColor ()
Obtiene el tipo de espacio de color de este TensorImage .
Tipo de datos
obtener tipo de datos ()
Obtiene el tipo de datos de este TensorImage .
En t
obtenerAltura ()
Obtiene la altura de la imagen.
Imagen
obtenerImagenMedia ()
Devuelve una representación de Image de este TensorImage .
TensorBuffer
getTensorBuffer ()
Devuelve una representación de TensorBuffer de este TensorImage con el tipo de datos esperado.
En t
obtenerAncho ()
Obtiene el ancho de la imagen.
vacío
cargar (búfer TensorBuffer , ColorSpaceType colorSpaceType )
Carga un TensorBuffer que contiene valores de píxeles con el ColorSpaceType específico.
vacío
cargar (mapa de bits mapa de bits)
Carga un objeto de imagen de Bitmap de bits en este TensorImage .
vacío
cargar (int[] píxeles, int[] forma)
Carga una matriz int como píxeles RGB en este TensorImage , que representa los píxeles del interior.
vacío
carga (píxeles flotantes [], forma int [])
Carga una matriz flotante como píxeles RGB en este TensorImage , que representa los píxeles del interior.
vacío
cargar (búfer ByteBuffer , ImageProperties imageProperties)
Carga un ByteBuffer que contiene valores de píxeles con ImageProperties específicos.
vacío
cargar (búfer TensorBuffer , ImageProperties imageProperties)
Carga un TensorBuffer que contiene valores de píxeles con las ImageProperties específicas.
vacío
cargar (Imagen imagen)
Carga un objeto de Image en este TensorImage .

Métodos Heredados

Constructores Públicos

TensorImage pública ()

Inicializa un objeto TensorImage .

Nota: el tipo de datos de este TensorImage es DataType.UINT8 . Usa TensorImage(DataType) si prefieres otros tipos de datos.

TensorImage público ( tipo de datos tipo de datos)

Inicializa un objeto TensorImage con el tipo de datos especificado.

Al obtener un TensorBuffer o un ByteBuffer de este TensorImage , como usar getTensorBuffer() y getBuffer() , los valores de los datos se convertirán al tipo de datos especificado.

Nota: la forma de un TensorImage no es fija. Se puede ajustar a la forma de la imagen que se carga en este TensorImage .

Parámetros
tipo de datos el tipo de datos esperado del TensorBuffer resultante. El tipo siempre se fija durante la vida útil de TensorImage . Para convertir el tipo de datos, use createFrom(TensorImage, DataType) para crear una copia y convertir el tipo de datos al mismo tiempo.

Métodos públicos

TensorImage estático público createFrom ( TensorImage src, DataType dataType)

Crea una copia profunda de un TensorImage dado con el tipo de datos deseado.

Parámetros
origen el TensorImage para copiar desde
tipo de datos el tipo de datos esperado de TensorImage recién creado
Devoluciones
  • un TensorImage cuyos datos se copian de src y el tipo de datos es dataType

TensorImage estático público fromBitmap (mapa de bits de mapa de bits)

mapa de bits público getBitmap ()

Devuelve una representación de Bitmap de bits de este TensorImage .

Se aplicarán conversión y sujeción numéricas si los datos almacenados no son uint8.

Tenga en cuenta que la forma confiable de obtener píxeles de un mapa de bits ALPHA_8 es usar copyPixelsToBuffer . Los métodos de mapa de bits como `setPixels()` y `getPixels` no funcionan.

Importante: es solo una referencia. NO MODIFICAR. No creamos una copia aquí por cuestiones de rendimiento, pero si es necesaria una modificación, haga una copia.

Devoluciones
  • una referencia a un Bitmap de bits en la configuración ARGB_8888 (el canal "A" siempre es opaco) o en ALPHA_8 , según el ColorSpaceType de este TensorBuffer .

bytebuffer público getbuffer ()

Devuelve una representación de ByteBuffer de este TensorImage con el tipo de datos esperado.

Se aplicarán conversión y sujeción numéricas si los datos almacenados son diferentes del tipo de datos de TensorImage .

Importante: es solo una referencia. NO MODIFICAR. No creamos una copia aquí por cuestiones de rendimiento, pero si es necesaria una modificación, haga una copia.

Es esencialmente un atajo para getTensorBuffer().getBuffer() .

Devoluciones
  • una referencia a un ByteBuffer que contiene los datos de la imagen

Tipo de espacio de color público getTipo de espacio de color ()

Obtiene el tipo de espacio de color de este TensorImage .

Tipo de datos público getDataType ()

Obtiene el tipo de datos de este TensorImage .

Devoluciones

getHeight public int ()

Obtiene la altura de la imagen.

Lanza
IllegalStateExceptionIlegalStateException si TensorImage nunca carga datos
Argumento de excepción ilegal si los datos subyacentes están dañados

Imagen pública getMediaImage ()

Devuelve una representación de Image de este TensorImage .

Este método solo funciona cuando TensorImage está respaldado por una Image , lo que significa que primero debe cargar una Image a través de load(Image) .

Importante: es solo una referencia. NO MODIFICAR. No creamos una copia aquí por cuestiones de rendimiento, pero si es necesaria una modificación, haga una copia.

Devoluciones
  • una referencia a un Bitmap de bits en la configuración ARGB_8888 (el canal "A" siempre es opaco) o en ALPHA_8 , según el ColorSpaceType de este TensorBuffer .

TensorBuffer público getTensorBuffer ()

Devuelve una representación de TensorBuffer de este TensorImage con el tipo de datos esperado.

Se aplicarán conversión y sujeción numéricas si los datos almacenados son diferentes del tipo de datos de TensorImage .

Importante: es solo una referencia. NO MODIFICAR. No creamos una copia aquí por cuestiones de rendimiento, pero si es necesaria una modificación, haga una copia.

Devoluciones
  • una referencia a un TensorBuffer que contiene los datos de la imagen

getWidth público int ()

Obtiene el ancho de la imagen.

Lanza
IllegalStateExceptionIlegalStateException si TensorImage nunca carga datos
Argumento de excepción ilegal si los datos subyacentes están dañados

carga vacía pública (búfer TensorBuffer , ColorSpaceType colorSpaceType )

Carga un TensorBuffer que contiene valores de píxeles con el ColorSpaceType específico.

Solo admite ColorSpaceType.RGB y ColorSpaceType.GRAYSCALE . Use load(TensorBuffer, ImageProperties) para otros tipos de espacios de color.

Nota: si el tipo de datos del buffer no coincide con el de este TensorImage , se aplicarán conversión y sujeción numéricas al llamar a getTensorBuffer() y getBuffer() .

Parámetros
buffer el TensorBuffer que se va a cargar. Su forma debe ser (h, w, 3) o (1, h, w, 3) para imágenes RGB y (h, w) o (1, h, w) para imágenes en ESCALA DE GRISES
colorSpaceType
Lanza
Argumento de excepción ilegal si la forma del búfer no coincide con el tipo de espacio de color, o si el tipo de espacio de color no es compatible

carga vacía pública (mapa de bits de mapa de bits)

Carga un objeto de imagen de Bitmap de bits en este TensorImage .

Nota: si TensorImage tiene un tipo de datos que no sea DataType.UINT8 , se aplicarán conversión y sujeción numéricas al llamar a getTensorBuffer() y getBuffer() , donde el Bitmap de bits se convertirá en un TensorBuffer .

Importante: al cargar un mapa de bits, NO MODIFIQUE más el mapa de bits desde el lado de la persona que llama. El objeto TensorImage se basará en el mapa de bits. Probablemente también modificará el mapa de bits. En este método, realizamos un enfoque de copia cero para ese mapa de bits, simplemente manteniendo su referencia. Use bitmap.copy(bitmap.getConfig(), true) para crear una copia si es necesario.

Nota: para obtener el mejor rendimiento, cargue imágenes en la misma forma para evitar la reasignación de memoria.

Parámetros
mapa de bits
Lanza
Argumento de excepción ilegal si el mapa de bitmap no está en ARGB_8888

carga de vacío público (int[] píxeles, int[] forma)

Carga una matriz int como píxeles RGB en este TensorImage , que representa los píxeles del interior.

Nota: se aplicarán conversión y sujeción numéricas para convertir los valores en el tipo de datos de este TensorImage al llamar a getTensorBuffer() y getBuffer() .

Parámetros
píxeles los píxeles RGB que representan la imagen
forma la forma de la imagen, ya sea en forma (h, w, 3), o en forma (1, h, w, 3)
Lanza
Argumento de excepción ilegal si la forma no es ni (h, w, 3) ni (1, h, w, 3)

carga vacía pública (píxeles flotantes [], forma int [])

Carga una matriz flotante como píxeles RGB en este TensorImage , que representa los píxeles del interior.

Nota: si TensorImage tiene un tipo de datos que no sea DataType.FLOAT32 , se aplicarán conversión y sujeción numéricas al llamar a getTensorBuffer() y getBuffer() .

Parámetros
píxeles los píxeles RGB que representan la imagen
forma la forma de la imagen, ya sea en forma (h, w, 3), o en forma (1, h, w, 3)
Lanza
Argumento de excepción ilegal si la forma no es ni (h, w, 3) ni (1, h, w, 3)

carga vacía pública (búfer ByteBuffer , ImageProperties imageProperties)

Carga un ByteBuffer que contiene valores de píxeles con ImageProperties específicos.

Nota: si el tipo de datos del buffer no coincide con el de este TensorImage , se aplicarán conversión y sujeción numéricas al llamar a getTensorBuffer() y getBuffer() .

Parámetros
buffer
propiedades de la imagen
Lanza
Argumento de excepción ilegal si el tamaño del búfer es menor que el tamaño de la imagen indicado por la altura, el ancho y el tipo de espacio de color de la imagen en ImageProperties

carga vacía pública (búfer TensorBuffer , ImageProperties imageProperties)

Carga un TensorBuffer que contiene valores de píxeles con las ImageProperties específicas.

La forma del TensorBuffer no se usará para determinar el alto y el ancho de la imagen. Establezca las propiedades de la imagen a través ImageProperties .

Nota: si el tipo de datos del buffer no coincide con el de este TensorImage , se aplicarán conversión y sujeción numéricas al llamar a getTensorBuffer() y getBuffer() .

Parámetros
buffer
propiedades de la imagen
Lanza
Argumento de excepción ilegal si el tamaño del búfer es menor que el tamaño de la imagen indicado por la altura, el ancho y el tipo de espacio de color de la imagen en ImageProperties

carga de vacío público (imagen de la imagen)

Carga un objeto de Image en este TensorImage .

El uso principal de este método es cargar un objeto de Image como entrada de modelo en https://www.tensorflow.org/lite/inference_with_metadata/task_library/overview . TensorImage respaldado por Image no es compatible con ImageProcessor .

* @arroja IllegalArgumentException si el ImageFormat de la image no es YUV_420_888

Parámetros
imagen