TensorImage

TensorImage e klasës publike

TensorImage është klasa e mbështjellësit për objektin Image. Kur përdorni mjete të përpunimit të imazhit në bibliotekën TFLite.support, është e zakonshme që në fillim të konvertohen objektet e imazhit në lloje variante në TensorImage.

Aktualisht, vetëm imazhet RGB mbështeten dhe kanali A injorohet gjithmonë.

Detajet e ruajtjes së të dhënave: një objekt TensorImage mund të ketë 2 burime të mundshme të së vërtetës: një Bitmap ose një TensorBuffer . TensorImage ruan gjendjen dhe konverton njërën në tjetrën vetëm kur nevojitet. Një rast tipik përdorimi i TensorImage është që fillimisht të ngarkoni një imazh Bitmap , pastaj ta përpunoni atë duke përdorur ImageProcessor , dhe në fund të merrni ByteBuffer in themelor të TensorBuffer dhe ta futni atë në interpretuesin TFLite.

E RËNDËSISHME: për të arritur performancën më të mirë, TensorImage shmang kopjimin e të dhënave sa herë që është e mundur. Prandaj, ajo nuk zotëron të dhënat e saj. Telefonuesit nuk duhet të modifikojnë objektet e të dhënave që kalohen në load(Bitmap) ose load(TensorBuffer, ColorSpaceType) .

E RËNDËSISHME: të gjitha metodat nuk janë vërtetuar të sigurta për fije.

Ndërtuesit Publikë

TensorImage ()
Inicializon një objekt TensorImage .
TensorImage (Tipi i të Dhënave Lloji i të Dhënave)
Inicializon një objekt TensorImage me llojin e specifikuar të të dhënave.

Metodat publike

TensorImage statike
createFrom ( TensorImage src, DataType DataType)
Krijon një kopje të thellë të një TensorImage të dhënë me llojin e dëshiruar të të dhënave.
TensorImage statike
nga Bitmap (Bitmap Bitmap)
Inicializon një objekt TensorImageDataType.UINT8 me një Bitmap .
Bitmap
getBitmap ()
Kthen një paraqitje Bitmap të këtij TensorImage .
ByteBuffer
getBuffer ()
Kthen një paraqitje ByteBuffer të këtij TensorImage me llojin e pritur të të dhënave.
ColorSpaceType
getColorSpaceType ()
Merr llojin e hapësirës së ngjyrave të këtij TensorImage .
Lloji i të Dhënave
getDataType ()
Merr llojin e të dhënave të këtij TensorImage .
ndër
merr lartësinë ()
Merr lartësinë e imazhit.
Imazhi
getMediaImage ()
Kthen një paraqitje Image të këtij TensorImage .
TensorBuffer
getTensorBuffer ()
Kthen një paraqitje TensorBuffer të këtij TensorImage me llojin e pritur të të dhënave.
ndër
getWidth ()
Merr gjerësinë e imazhit.
i pavlefshëm
load ( TensorBuffer buffer, ColorSpaceType colorSpaceType)
Ngarkon një TensorBuffer që përmban vlera pixel me ColorSpaceType specifik.
i pavlefshëm
load (Bitmap Bitmap)
Ngarkon një objekt imazhi Bitmap në këtë TensorImage .
i pavlefshëm
ngarkesë (int[] pixel, int[] formë)
Ngarkon një grup int si piksel RGB në këtë TensorImage , duke përfaqësuar pikselët brenda.
i pavlefshëm
load (float[] pixels, int[] form)
Ngarkon një grup float si piksel RGB në këtë TensorImage , duke përfaqësuar pikselët brenda.
i pavlefshëm
ngarkoni (buffer ByteBuffer , ImageProperties imageProperties)
Ngarkon një ByteBuffer që përmban vlera pikselësh me Karakteristikat specifike ImageProperties .
i pavlefshëm
load ( TensorBuffer buffer, ImageProperties imageProperties)
Ngarkon një TensorBuffer që përmban vlera pikselësh me Karakteristikat specifike ImageProperties .
i pavlefshëm
ngarkoni (imazhin e imazhit)
Ngarkon një objekt Image në këtë TensorImage .

Metodat e trashëguara

Ndërtuesit Publikë

Publik TensorImage ()

Inicializon një objekt TensorImage .

Shënim: lloji i të dhënave të këtij TensorImage është DataType.UINT8 . Përdorni TensorImage(DataType) nëse preferohen lloje të tjera të dhënash.

publik TensorImage (Type të dhënash Lloji i të dhënave )

Inicializon një objekt TensorImage me llojin e specifikuar të të dhënave.

Kur merrni një TensorBuffer ose një ByteBuffer nga ky TensorImage , si p.sh. përdorimi i getTensorBuffer() dhe getBuffer() , vlerat e të dhënave do të konvertohen në llojin e specifikuar të të dhënave.

Shënim: forma e një TensorImage nuk është fikse. Mund të rregullohet në formën e imazhit që ngarkohet në këtë TensorImage .

Parametrat
Lloji i të dhënave lloji i pritur i të dhënave të TensorBuffer që rezulton. Lloji është gjithmonë i fiksuar gjatë jetës së TensorImage . Për të konvertuar llojin e të dhënave, përdorni createFrom(TensorImage, DataType) për të krijuar një kopje dhe për të konvertuar llojin e të dhënave në të njëjtën kohë.
Hedhjet
IllegalArgumentPërjashtim nëse dataType nuk është as DataType.UINT8 as DataType.FLOAT32

Metodat publike

publike statike TensorImage krijuarNga ( TensorImage src, DataType DataType)

Krijon një kopje të thellë të një TensorImage të dhënë me llojin e dëshiruar të të dhënave.

Parametrat
src TensorImage për të kopjuar
Lloji i të dhënave lloji i pritur i të dhënave të TensorImage të sapokrijuar
Kthimet
  • një TensorImage të dhënat e të cilit janë kopjuar nga src dhe lloji i të dhënave është dataType

Bitmap publik getBitmap ()

Kthen një paraqitje Bitmap të këtij TensorImage .

Derdhja numerike dhe shtrëngimi do të aplikohen nëse të dhënat e ruajtura nuk janë uint8.

Vini re se mënyra e besueshme për të marrë pikselë nga një Bitmap ALPHA_8 është përdorimi i copyPixelsToBuffer . Metodat e bitmap-it si 'setPixels()' dhe 'getPixels' nuk funksionojnë.

E rëndësishme: është vetëm një referencë. MOS MODIFIKOHET. Ne nuk krijojmë një kopje këtu për shqetësimin e performancës, por nëse modifikimi është i nevojshëm, ju lutemi bëni një kopje.

Kthimet
  • një referencë për një Bitmap në konfigurimin ARGB_8888 (kanali "A" është gjithmonë i errët) ose në ALPHA_8 , në varësi të ColorSpaceType të këtij TensorBuffer .
Hedhjet
IllegalStateException nëse TensorImage nuk ngarkon kurrë të dhëna

publike ByteBuffer getBuffer ()

Kthen një paraqitje ByteBuffer të këtij TensorImage me llojin e pritur të të dhënave.

Derdhja numerike dhe shtrëngimi do të aplikohen nëse të dhënat e ruajtura janë të ndryshme nga lloji i të dhënave të TensorImage .

E rëndësishme: është vetëm një referencë. MOS MODIFIKOHET. Ne nuk krijojmë një kopje këtu për shqetësimin e performancës, por nëse modifikimi është i nevojshëm, ju lutemi bëni një kopje.

Është në thelb një rrugë e shkurtër për getTensorBuffer().getBuffer() .

Kthimet
  • një referencë për një ByteBuffer që mban të dhënat e imazhit
Hedhjet
IllegalStateException nëse TensorImage nuk ngarkon kurrë të dhëna

publike ColorSpaceType getColorSpaceType ()

Merr llojin e hapësirës së ngjyrave të këtij TensorImage .

Hedhjet
IllegalStateException nëse TensorImage nuk ngarkon kurrë të dhëna

Public DataType getDataType ()

Merr llojin e të dhënave të këtij TensorImage .

Kthimet

publike int getHeight ()

Merr lartësinë e imazhit.

Hedhjet
IllegalStateException nëse TensorImage nuk ngarkon kurrë të dhëna
IllegalArgumentPërjashtim nëse të dhënat themelore janë të korruptuara

Imazhi publik getMediaImage ()

Kthen një paraqitje Image të këtij TensorImage .

Kjo metodë funksionon vetëm kur TensorImage mbështetet nga një Image , që do të thotë se fillimisht duhet të ngarkoni një Image përmes load(Image) .

E rëndësishme: është vetëm një referencë. MOS MODIFIKOHET. Ne nuk krijojmë një kopje këtu për shqetësimin e performancës, por nëse modifikimi është i nevojshëm, ju lutemi bëni një kopje.

Kthimet
  • një referencë për një Bitmap në konfigurimin ARGB_8888 (kanali "A" është gjithmonë i errët) ose në ALPHA_8 , në varësi të ColorSpaceType të këtij TensorBuffer .
Hedhjet
IllegalStateException nëse TensorImage nuk ngarkon kurrë të dhëna

publik TensorBuffer getTensorBuffer ()

Kthen një paraqitje TensorBuffer të këtij TensorImage me llojin e pritur të të dhënave.

Derdhja numerike dhe shtrëngimi do të aplikohen nëse të dhënat e ruajtura janë të ndryshme nga lloji i të dhënave të TensorImage .

E rëndësishme: është vetëm një referencë. MOS MODIFIKOHET. Ne nuk krijojmë një kopje këtu për shqetësimin e performancës, por nëse modifikimi është i nevojshëm, ju lutemi bëni një kopje.

Kthimet
  • një referencë për një TensorBuffer që mban të dhënat e imazhit
Hedhjet
IllegalStateException nëse TensorImage nuk ngarkon kurrë të dhëna

publike int getWidth ()

Merr gjerësinë e imazhit.

Hedhjet
IllegalStateException nëse TensorImage nuk ngarkon kurrë të dhëna
IllegalArgumentPërjashtim nëse të dhënat themelore janë të korruptuara

ngarkesa publike e zbrazët (buferi TensorBuffer , ColorSpaceType colorSpaceType)

Ngarkon një TensorBuffer që përmban vlera pixel me ColorSpaceType specifik.

Mbështet vetëm ColorSpaceType.RGB dhe ColorSpaceType.GRAYSCALE . Përdorni load(TensorBuffer, ImageProperties) për lloje të tjera të hapësirës së ngjyrave.

Shënim: nëse lloji i të dhënave të buffer nuk përputhet me atë të këtij TensorImage , do të aplikohet kalimi dhe shtrëngimi numerik kur telefononi getTensorBuffer() dhe getBuffer() .

Parametrat
tampon TensorBuffer që do të ngarkohet. Forma e tij duhet të jetë ose (h, w, 3) ose (1, h, w, 3) për imazhet RGB dhe ose (h, w) ose (1, h, w) për imazhet GRAYSCALE
colorSpaceType
Hedhjet
IllegalArgumentPërjashtim nëse forma e tamponit nuk përputhet me llojin e hapësirës së ngjyrave, ose nëse lloji i hapësirës së ngjyrave nuk mbështetet

ngarkesa publike e zbrazët (Bitmap bitmap)

Ngarkon një objekt imazhi Bitmap në këtë TensorImage .

Shënim: nëse TensorImage ka një lloj të dhënash të ndryshëm nga DataType.UINT8 , do të aplikohet kalimi dhe kapja numerike kur telefononi getTensorBuffer() dhe getBuffer() , ku Bitmap do të konvertohet në një TensorBuffer .

E rëndësishme: kur ngarkoni një bitmap, MOS MODIFIKONI më bitmap nga ana e thirrësit. Objekti TensorImage do të mbështetet në bitmap. Ndoshta do të modifikojë gjithashtu bitmap. Në këtë metodë, ne kryejmë një qasje me kopje zero për atë bitmap, thjesht duke mbajtur referencën e saj. Përdorni bitmap.copy(bitmap.getConfig(), true) për të krijuar një kopje nëse është e nevojshme.

Shënim: për të marrë performancën më të mirë, ngarkoni imazhet në të njëjtën formë për të shmangur rishpërndarjen e kujtesës.

Parametrat
bitmap
Hedhjet
IllegalArgumentPërjashtim nëse bitmap nuk është në ARGB_8888

ngarkesa publike e zbrazët (int[] pixels, int[] formë)

Ngarkon një grup int si piksel RGB në këtë TensorImage , duke përfaqësuar pikselët brenda.

Shënim: derdhja numerike dhe shtrëngimi do të aplikohen për të kthyer vlerat në llojin e të dhënave të këtij TensorImage kur thirrni getTensorBuffer() dhe getBuffer() .

Parametrat
piksele pikselët RGB që përfaqësojnë imazhin
formë forma e imazhit duhet të jetë ose në formë (h, w, 3), ose në formë (1, h, w, 3)
Hedhjet
IllegalArgumentPërjashtim nëse forma nuk është as (h, w, 3) as (1, h, w, 3)

ngarkesa publike e zbrazët (float[] pixels, int[] form)

Ngarkon një grup float si piksel RGB në këtë TensorImage , duke përfaqësuar pikselët brenda.

Shënim: nëse TensorImage ka një lloj të dhënash të ndryshëm nga DataType.FLOAT32 , do të aplikohet derdhja numerike dhe shtrëngimi kur thirrni getTensorBuffer() dhe getBuffer() .

Parametrat
piksele pikselët RGB që përfaqësojnë imazhin
formë forma e imazhit duhet të jetë ose në formë (h, w, 3), ose në formë (1, h, w, 3)
Hedhjet
IllegalArgumentPërjashtim nëse forma nuk është as (h, w, 3) as (1, h, w, 3)

Ngarkesa publike e zbrazët (buffer ByteBuffer , ImageProperties imageProperties)

Ngarkon një ByteBuffer që përmban vlera pikselësh me Karakteristikat specifike ImageProperties .

Shënim: nëse lloji i të dhënave të buffer nuk përputhet me atë të këtij TensorImage , do të aplikohet kalimi dhe shtrëngimi numerik kur telefononi getTensorBuffer() dhe getBuffer() .

Parametrat
tampon
Vetitë e imazhit
Hedhjet
IllegalArgumentPërjashtim nëse madhësia e buferit është më e vogël se madhësia e figurës e treguar nga lartësia, gjerësia dhe lloji i hapësirës së ngjyrave në ImageProperties

Ngarkesa publike e zbrazët (buffer TensorBuffer , ImageProperties imageProperties)

Ngarkon një TensorBuffer që përmban vlera pikselësh me Karakteristikat specifike ImageProperties .

Forma e TensorBuffer nuk do të përdoret për të përcaktuar lartësinë dhe gjerësinë e imazhit. Vendosni vetitë e imazhit përmes ImageProperties .

Shënim: nëse lloji i të dhënave të buffer nuk përputhet me atë të këtij TensorImage , do të aplikohet kalimi dhe shtrëngimi numerik kur telefononi getTensorBuffer() dhe getBuffer() .

Parametrat
tampon
Vetitë e imazhit
Hedhjet
IllegalArgumentPërjashtim nëse madhësia e buferit është më e vogël se madhësia e figurës e treguar nga lartësia, gjerësia dhe lloji i hapësirës së ngjyrave në ImageProperties

ngarkesa publike e zbrazët (imazhi i imazhit)

Ngarkon një objekt Image në këtë TensorImage .

Përdorimi kryesor i kësaj metode është ngarkimi i një objekti Image si hyrje modeli në https://www.tensorflow.org/lite/inference_with_metadata/task_library/overview . TensorImage i mbështetur nga Image nuk mbështetet nga ImageProcessor .

* @hedh IllegalArgumentException nëse ImageFormat i image nuk është YUV_420_888

Parametrat
imazh