TensorImage adalah kelas pembungkus untuk objek Gambar. Saat menggunakan utilitas pemrosesan gambar di pustaka TFLite.support, biasanya objek gambar dalam tipe varian dikonversi ke TensorImage terlebih dahulu.
Saat ini, hanya gambar RGB yang didukung, dan saluran A selalu diabaikan.
Detail penyimpanan data: objek TensorImage
mungkin memiliki 2 sumber kebenaran potensial: Bitmap
atau TensorBuffer
. TensorImage
mempertahankan status dan hanya mengonversi satu status ke status lainnya bila diperlukan. Kasus penggunaan umum TensorImage
adalah memuat gambar Bitmap
terlebih dahulu, lalu memprosesnya menggunakan ImageProcessor
, dan terakhir mendapatkan ByteBuffer
yang mendasari TensorBuffer
dan memasukkannya ke dalam interpreter TFLite.
PENTING: untuk mencapai performa terbaik, TensorImage
menghindari penyalinan data kapan pun memungkinkan. Oleh karena itu, ia tidak memiliki datanya. Penelepon tidak boleh mengubah objek data yang diteruskan ke load(Bitmap)
atau load(TensorBuffer, ColorSpaceType)
.
PENTING: semua metode tidak terbukti aman untuk thread.
Konstruktor Publik
Gambar Tensor () Menginisialisasi objek TensorImage . | |
TensorImage ( Tipe DataTipe data) Menginisialisasi objek TensorImage dengan tipe data yang ditentukan. |
Metode Publik
Gambar Tensor statis | buatDari ( TensorImage src, Tipe Data tipe data) Membuat salinan dalam TensorImage tertentu dengan tipe data yang diinginkan. |
Gambar Tensor statis | dariBitmap (Bitmap bitmap) |
peta bit | dapatkanBitmap () Mengembalikan representasi Bitmap dari TensorImage ini. |
ByteBuffer | dapatkanBuffer () Mengembalikan representasi ByteBuffer dari TensorImage ini dengan tipe data yang diharapkan. |
Tipe Ruang Warna | dapatkanColorSpaceType () Mendapatkan tipe ruang warna TensorImage ini. |
Tipe data | dapatkanTipeData () Mendapatkan tipe data TensorImage ini. |
ke dalam | dapatkan Tinggi () Mendapatkan tinggi gambar. |
Gambar | dapatkanMediaImage () Mengembalikan representasi Image dari TensorImage ini. |
TensorBuffer | dapatkanTensorBuffer () Mengembalikan representasi TensorBuffer dari TensorImage ini dengan tipe data yang diharapkan. |
ke dalam | dapatkan Lebar () Mendapatkan lebar gambar. |
ruang kosong | memuat (buffer TensorBuffer , ColorSpaceType colorSpaceType) Memuat TensorBuffer yang berisi nilai piksel dengan ColorSpaceType tertentu. |
ruang kosong | memuat (bitmap bitmap) Memuat objek gambar Bitmap ke dalam TensorImage ini. |
ruang kosong | memuat (int[] piksel, int[] bentuk) Memuat array int sebagai piksel RGB ke dalam TensorImage ini, yang mewakili piksel di dalamnya. |
ruang kosong | memuat (float[] piksel, int[] bentuk) Memuat array float sebagai piksel RGB ke dalam TensorImage ini, yang mewakili piksel di dalamnya. |
ruang kosong | memuat (buffer ByteBuffer , ImageProperties imageProperties) Memuat ByteBuffer yang berisi nilai piksel dengan ImageProperties tertentu. |
ruang kosong | memuat (buffer TensorBuffer , ImageProperties imageProperties) Memuat TensorBuffer yang berisi nilai piksel dengan ImageProperties tertentu. |
ruang kosong | memuat (Gambar gambar) Memuat objek Image ke dalam TensorImage ini. |
Metode Warisan
Konstruktor Publik
Gambar Tensor publik ()
Menginisialisasi objek TensorImage
.
Catatan: tipe data TensorImage
ini adalah DataType.UINT8
. Gunakan TensorImage(DataType)
jika tipe data lain lebih disukai.
TensorImage publik ( Tipe Data tipe data)
Menginisialisasi objek TensorImage
dengan tipe data yang ditentukan.
Saat mendapatkan TensorBuffer
atau ByteBuffer
dari TensorImage
ini, seperti menggunakan getTensorBuffer()
dan getBuffer()
, nilai data akan dikonversi ke tipe data yang ditentukan.
Catatan: bentuk TensorImage
tidak tetap. Hal ini dapat disesuaikan dengan bentuk gambar yang dimuat ke TensorImage
ini.
Parameter
tipe data | tipe data yang diharapkan dari TensorBuffer yang dihasilkan. Jenisnya selalu diperbaiki selama masa pakai TensorImage . Untuk mengonversi tipe data, gunakan createFrom(TensorImage, DataType) untuk membuat salinan dan mengonversi tipe data secara bersamaan. |
---|
Melempar
Pengecualian Argumen Ilegal | jika dataType bukan DataType.UINT8 atau DataType.FLOAT32 |
---|
Metode Publik
TensorImage statis publik createFrom ( TensorImage src, Tipe Data tipe data)
Membuat salinan dalam TensorImage
tertentu dengan tipe data yang diinginkan.
Parameter
src | TensorImage yang akan disalin |
---|---|
tipe data | tipe data yang diharapkan dari TensorImage yang baru dibuat |
Kembali
-
TensorImage
yang datanya disalin darisrc
dan tipe datanya adalahdataType
TensorImage statis publik dariBitmap (Bitmap bitmap)
Menginisialisasi objek TensorImage
DataType.UINT8
dengan Bitmap
.
Parameter
bitmap |
---|
Bitmap publik getBitmap ()
Mengembalikan representasi Bitmap
dari TensorImage
ini.
Pengecoran dan penjepitan numerik akan diterapkan jika data yang disimpan bukan uint8.
Perhatikan bahwa cara andal untuk mendapatkan piksel dari Bitmap ALPHA_8
adalah dengan menggunakan copyPixelsToBuffer
. Metode bitmap seperti, `setPixels()` dan `getPixels` tidak berfungsi.
Penting: ini hanya referensi. JANGAN DIUBAH. Kami tidak membuat salinan di sini karena alasan kinerja, namun jika diperlukan modifikasi, silakan buat salinannya.
Kembali
- referensi ke
Bitmap
dalam konfigurasiARGB_8888
(saluran "A" selalu buram) atau dalamALPHA_8
, bergantung padaColorSpaceType
TensorBuffer
ini.
Melempar
IlegalStateException | jika TensorImage tidak pernah memuat data |
---|
ByteBuffer publik getBuffer ()
Mengembalikan representasi ByteBuffer
dari TensorImage
ini dengan tipe data yang diharapkan.
Transmisi dan penjepitan numerik akan diterapkan jika data yang disimpan berbeda dari tipe data TensorImage
.
Penting: ini hanya referensi. JANGAN DIUBAH. Kami tidak membuat salinan di sini karena alasan kinerja, namun jika diperlukan modifikasi, silakan buat salinannya.
Ini pada dasarnya adalah jalan pintas untuk getTensorBuffer().getBuffer()
.
Kembali
- referensi ke
ByteBuffer
yang menyimpan data gambar
Melempar
IlegalStateException | jika TensorImage tidak pernah memuat data |
---|
ColorSpaceType publik getColorSpaceType ()
Mendapatkan tipe ruang warna TensorImage
ini.
Melempar
IlegalStateException | jika TensorImage tidak pernah memuat data |
---|
Tipe Data publik getDataType ()
Mendapatkan tipe data TensorImage
ini.
Kembali
- sebuah tipe data. Saat ini hanya
DataType.UINT8
danDataType.FLOAT32
yang didukung.
publik int getHeight ()
Mendapatkan tinggi gambar.
Melempar
IlegalStateException | jika TensorImage tidak pernah memuat data |
---|---|
Pengecualian Argumen Ilegal | jika data yang mendasarinya rusak |
Gambar publik getMediaImage ()
Mengembalikan representasi Image
dari TensorImage
ini.
Metode ini hanya berfungsi jika TensorImage
didukung oleh Image
, artinya Anda harus memuat Image
terlebih dahulu melalui load(Image)
.
Penting: ini hanya referensi. JANGAN DIUBAH. Kami tidak membuat salinan di sini karena alasan kinerja, namun jika diperlukan modifikasi, silakan buat salinannya.
Kembali
- referensi ke
Bitmap
dalam konfigurasiARGB_8888
(saluran "A" selalu buram) atau dalamALPHA_8
, bergantung padaColorSpaceType
TensorBuffer
ini.
Melempar
IlegalStateException | jika TensorImage tidak pernah memuat data |
---|
TensorBuffer publik dapatkanTensorBuffer ()
Mengembalikan representasi TensorBuffer
dari TensorImage
ini dengan tipe data yang diharapkan.
Transmisi dan penjepitan numerik akan diterapkan jika data yang disimpan berbeda dari tipe data TensorImage
.
Penting: ini hanya referensi. JANGAN DIUBAH. Kami tidak membuat salinan di sini karena alasan kinerja, namun jika diperlukan modifikasi, silakan buat salinannya.
Kembali
- referensi ke
TensorBuffer
yang menyimpan data gambar
Melempar
IlegalStateException | jika TensorImage tidak pernah memuat data |
---|
int publik getWidth ()
Mendapatkan lebar gambar.
Melempar
IlegalStateException | jika TensorImage tidak pernah memuat data |
---|---|
Pengecualian Argumen Ilegal | jika data yang mendasarinya rusak |
beban kekosongan publik (buffer TensorBuffer , ColorSpaceType colorSpaceType)
Memuat TensorBuffer
yang berisi nilai piksel dengan ColorSpaceType
tertentu.
Hanya mendukung ColorSpaceType.RGB
dan ColorSpaceType.GRAYSCALE
. Gunakan load(TensorBuffer, ImageProperties)
untuk tipe ruang warna lainnya.
Catatan: jika tipe data buffer
tidak cocok dengan TensorImage
ini, pengecoran dan penjepitan numerik akan diterapkan saat memanggil getTensorBuffer()
dan getBuffer()
.
Parameter
penyangga | TensorBuffer yang akan dimuat. Bentuknya harus (h, w, 3) atau (1, h, w, 3) untuk gambar RGB, dan (h, w) atau (1, h, w) untuk gambar GRAYSCALE |
---|---|
colorSpaceType |
Melempar
Pengecualian Argumen Ilegal | jika bentuk buffer tidak cocok dengan tipe ruang warna, atau jika tipe ruang warna tidak didukung |
---|
beban kekosongan publik (Bitmap bitmap)
Memuat objek gambar Bitmap
ke dalam TensorImage
ini.
Catatan: jika TensorImage
memiliki tipe data selain DataType.UINT8
, pengecoran dan penjepitan numerik akan diterapkan saat memanggil getTensorBuffer()
dan getBuffer()
, yang mana Bitmap
akan diubah menjadi TensorBuffer
.
Penting: saat memuat bitmap, JANGAN MODIFIKASI bitmap dari sisi pemanggil lagi. Objek TensorImage
akan bergantung pada bitmap. Ini mungkin akan mengubah bitmap juga. Dalam metode ini, kami melakukan pendekatan zero-copy untuk bitmap tersebut, hanya dengan menahan referensinya. Gunakan bitmap.copy(bitmap.getConfig(), true)
untuk membuat salinan jika perlu.
Catatan: untuk mendapatkan performa terbaik, harap muat gambar dalam bentuk yang sama untuk menghindari alokasi ulang memori.
Parameter
bitmap |
---|
Melempar
Pengecualian Argumen Ilegal | jika bitmap tidak ada di ARGB_8888 |
---|
beban kekosongan publik (int[] piksel, int[] bentuk)
Memuat array int sebagai piksel RGB ke dalam TensorImage
ini, yang mewakili piksel di dalamnya.
Catatan: pengecoran dan penjepitan numerik akan diterapkan untuk mengonversi nilai menjadi tipe data TensorImage
ini saat memanggil getTensorBuffer()
dan getBuffer()
.
Parameter
piksel | piksel RGB yang mewakili gambar |
---|---|
membentuk | bentuk bayangannya, harus dalam bentuk (h, w, 3), atau dalam bentuk (1, h, w, 3) |
Melempar
Pengecualian Argumen Ilegal | jika bentuknya bukan (h, w, 3) atau (1, h, w, 3) |
---|
beban kekosongan publik (float[] piksel, int[] bentuk)
Memuat array float sebagai piksel RGB ke dalam TensorImage
ini, yang mewakili piksel di dalamnya.
Catatan: jika TensorImage
memiliki tipe data selain DataType.FLOAT32
, transmisi dan penjepitan numerik akan diterapkan saat memanggil getTensorBuffer()
dan getBuffer()
.
Parameter
piksel | piksel RGB yang mewakili gambar |
---|---|
membentuk | bentuk bayangannya, harus dalam bentuk (h, w, 3), atau dalam bentuk (1, h, w, 3) |
Melempar
Pengecualian Argumen Ilegal | jika bentuknya bukan (h, w, 3) atau (1, h, w, 3) |
---|
beban kekosongan publik (buffer ByteBuffer , ImageProperties imageProperties)
Memuat ByteBuffer
yang berisi nilai piksel dengan ImageProperties
tertentu.
Catatan: jika tipe data buffer
tidak cocok dengan TensorImage
ini, pengecoran dan penjepitan numerik akan diterapkan saat memanggil getTensorBuffer()
dan getBuffer()
.
Parameter
penyangga | |
---|---|
properti gambar |
Melempar
Pengecualian Argumen Ilegal | jika ukuran buffer lebih kecil dari ukuran gambar yang ditunjukkan oleh tinggi gambar, lebar, dan jenis ruang warna di ImageProperties |
---|
beban kekosongan publik (buffer TensorBuffer , ImageProperties imageProperties)
Memuat TensorBuffer
yang berisi nilai piksel dengan ImageProperties
tertentu.
Bentuk TensorBuffer
tidak akan digunakan untuk menentukan tinggi dan lebar gambar. Atur properti gambar melalui ImageProperties
.
Catatan: jika tipe data buffer
tidak cocok dengan TensorImage
ini, pengecoran dan penjepitan numerik akan diterapkan saat memanggil getTensorBuffer()
dan getBuffer()
.
Parameter
penyangga | |
---|---|
properti gambar |
Melempar
Pengecualian Argumen Ilegal | jika ukuran buffer lebih kecil dari ukuran gambar yang ditunjukkan oleh tinggi gambar, lebar, dan jenis ruang warna di ImageProperties |
---|
beban kekosongan publik (Gambar gambar)
Memuat objek Image
ke dalam TensorImage
ini.
Penggunaan utama metode ini adalah memuat objek Image
sebagai masukan model ke https://www.tensorflow.org/lite/inference_with_metadata/task_library/overview . TensorImage
yang didukung oleh Image
tidak didukung oleh ImageProcessor
.
* @throws IllegalArgumentException jika ImageFormat
image
bukan YUV_420_888
Parameter
gambar |
---|