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.
Shihni gjithashtu
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) |
| 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ë
TensorImagetë dhënat e të cilit janë kopjuar ngasrcdhe lloji i të dhënave ështëdataType
TensorImage statike publike nga Bitmap (Bitmap Bitmap)
Inicializon një objekt TensorImage të DataType.UINT8 me një Bitmap .
Parametrat
| bitmap |
|---|
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ë
Bitmapnë konfiguriminARGB_8888(kanali "A" është gjithmonë i errët) ose nëALPHA_8, në varësi tëColorSpaceTypetë këtijTensorBuffer.
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ë
ByteBufferqë 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
- një lloj të dhënash. Aktualisht mbështeten vetëm
DataType.UINT8dheDataType.FLOAT32.
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ë
Bitmapnë konfiguriminARGB_8888(kanali "A" është gjithmonë i errët) ose nëALPHA_8, në varësi tëColorSpaceTypetë këtijTensorBuffer.
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ë
TensorBufferqë 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 |
|---|