TensorImage هي فئة الغلاف لكائن الصورة. عند استخدام أدوات معالجة الصور في مكتبة TFLite.support، من الشائع تحويل كائنات الصور في أنواع مختلفة إلى TensorImage في البداية.
في الوقت الحالي، يتم دعم صور RGB فقط، ويتم تجاهل القناة A دائمًا.
تفاصيل تخزين البيانات: قد يحتوي كائن TensorImage
على مصدرين محتملين للحقيقة: Bitmap
أو TensorBuffer
. يحافظ TensorImage
على الحالة ويحول واحدًا إلى الآخر فقط عند الحاجة. حالة الاستخدام النموذجية لـ TensorImage
هي تحميل صورة Bitmap
أولاً، ثم معالجتها باستخدام ImageProcessor
، وأخيرًا الحصول على ByteBuffer
الأساسي لـ TensorBuffer
وإدخالها في مترجم TFLite.
هام: لتحقيق أفضل أداء، يتجنب TensorImage
نسخ البيانات كلما كان ذلك ممكنًا. ولذلك، فإنه لا يملك البيانات الخاصة به. يجب ألا يقوم المتصلون بتعديل كائنات البيانات التي تم تمريرها إلى load(Bitmap)
أو load(TensorBuffer, ColorSpaceType)
.
هام: لم يتم إثبات سلامة جميع الطرق.
المقاولون العامون
صورة TensorImage () تهيئة كائن TensorImage . | |
الأساليب العامة
ثابت TensorImage | createFrom ( TensorImage src، DataType dataType) ينشئ نسخة عميقة من TensorImage معينة بنوع البيانات المطلوب. |
ثابت TensorImage | من صورة نقطية (صورة نقطية) |
الصورة النقطية | الحصول على صورة نقطية () تقوم بإرجاع تمثيل Bitmap لـ TensorImage . |
ByteBuffer | الحصول على المخزن المؤقت () تُرجع تمثيل ByteBuffer لـ TensorImage بنوع البيانات المتوقع. |
ColorSpaceType | الحصول على ColorSpaceType () يحصل على نوع مساحة اللون من TensorImage . |
نوع البيانات | الحصول على نوع البيانات () يحصل على نوع بيانات TensorImage . |
كثافة العمليات | الحصول على الارتفاع () يحصل على ارتفاع الصورة. |
صورة | صورة الوسائط () تقوم بإرجاع تمثيل Image لهذا TensorImage . |
TensorBuffer | الحصول على TensorBuffer () تقوم بإرجاع تمثيل TensorBuffer لـ TensorImage مع نوع البيانات المتوقع. |
كثافة العمليات | الحصول على العرض () يحصل على عرض الصورة. |
فارغ | تحميل (المخزن المؤقت TensorBuffer ، ColorSpaceType colorSpaceType) يقوم بتحميل TensorBuffer الذي يحتوي على قيم البكسل باستخدام ColorSpaceType المحدد. |
فارغ | تحميل (صورة نقطية) يقوم بتحميل كائن صورة Bitmap في TensorImage . |
فارغ | التحميل (عدد صحيح[] بكسل، شكل صحيح[]) يقوم بتحميل مصفوفة int على هيئة بكسلات RGB في TensorImage ، مما يمثل وحدات البكسل الموجودة بالداخل. |
فارغ | تحميل (تعويم [] بكسل، شكل صحيح []) يقوم بتحميل مصفوفة عائمة على هيئة بكسلات RGB في TensorImage ، مما يمثل وحدات البكسل الموجودة بداخلها. |
فارغ | التحميل ( ByteBuffer buffer، ImageProperties imageProperties) يقوم بتحميل ByteBuffer الذي يحتوي على قيم البكسل باستخدام ImageProperties المحددة. |
فارغ | التحميل (المخزن المؤقت TensorBuffer ، ImageProperties imageProperties) يقوم بتحميل TensorBuffer الذي يحتوي على قيم البكسل باستخدام ImageProperties المحددة. |
فارغ | تحميل (صورة الصورة) يقوم بتحميل كائن Image في TensorImage . |
الطرق الموروثة
المقاولون العامون
TensorImage العامة ()
تهيئة كائن TensorImage
.
ملحوظة: نوع بيانات TensorImage
هو DataType.UINT8
. استخدم TensorImage(DataType)
إذا كانت أنواع البيانات الأخرى مفضلة.
TensorImage العامة (نوع البيانات نوع البيانات )
تهيئة كائن TensorImage
بنوع البيانات المحدد.
عند الحصول على TensorBuffer
أو ByteBuffer
من TensorImage
، مثل استخدام getTensorBuffer()
و getBuffer()
، سيتم تحويل قيم البيانات إلى نوع البيانات المحدد.
ملحوظة: شكل TensorImage
غير ثابت. يمكن تعديله ليناسب شكل الصورة التي يتم تحميلها على TensorImage
.
حدود
نوع البيانات | نوع البيانات المتوقع لـ TensorBuffer الناتج. يتم دائمًا إصلاح النوع أثناء عمر TensorImage . لتحويل نوع البيانات، استخدم createFrom(TensorImage, DataType) لإنشاء نسخة وتحويل نوع البيانات في نفس الوقت. |
---|
رميات
غير الشرعيين استثناء حجة | إذا لم يكن dataType هو DataType.UINT8 أو DataType.FLOAT32 |
---|
الأساليب العامة
إنشاء TensorImage الثابت العام ( TensorImage src، DataType dataType)
ينشئ نسخة عميقة من TensorImage
معينة بنوع البيانات المطلوب.
حدود
src | TensorImage للنسخ منها |
---|---|
نوع البيانات | نوع البيانات المتوقع لـ TensorImage الذي تم إنشاؤه حديثًا |
عائدات
-
TensorImage
الذي يتم نسخ بياناته منsrc
ونوع البيانات هوdataType
TensorImage العامة الثابتة من Bitmap (صورة نقطية)
تهيئة كائن TensorImage
الخاص بـ DataType.UINT8
باستخدام Bitmap
.
حدود
صورة نقطية |
---|
الصورة النقطية العامة getBitmap ()
تقوم بإرجاع تمثيل Bitmap
لـ TensorImage
.
سيتم تطبيق الصب والتثبيت الرقمي إذا لم تكن البيانات المخزنة uint8.
لاحظ أن الطريقة الموثوقة للحصول على وحدات البكسل من صورة نقطية ALPHA_8
هي استخدام copyPixelsToBuffer
. أساليب الصورة النقطية مثل `setPixels()` و`getPixels` لا تعمل.
هام: إنه مجرد مرجع. لا تقم بالتعديل. نحن لا نقوم بإنشاء نسخة هنا لأسباب تتعلق بالأداء، ولكن إذا كان التعديل ضروريًا، فيرجى عمل نسخة.
عائدات
- مرجع إلى
Bitmap
في تكوينARGB_8888
(القناة "A" غير شفافة دائمًا) أو فيALPHA_8
، اعتمادًا علىColorSpaceType
الخاص بـTensorBuffer
.
رميات
استثناء الدولة غير القانوني | إذا لم يقوم TensorImage بتحميل البيانات مطلقًا |
---|
GetBuffer ByteBuffer العام ()
تُرجع تمثيل ByteBuffer
لـ TensorImage
بنوع البيانات المتوقع.
سيتم تطبيق الصب والتثبيت الرقمي إذا كانت البيانات المخزنة مختلفة عن نوع بيانات TensorImage
.
هام: إنه مجرد مرجع. لا تقم بالتعديل. نحن لا نقوم بإنشاء نسخة هنا لأسباب تتعلق بالأداء، ولكن إذا كان التعديل ضروريًا، فيرجى عمل نسخة.
إنه في الأساس اختصار لـ getTensorBuffer().getBuffer()
.
عائدات
- إشارة إلى
ByteBuffer
الذي يحتفظ ببيانات الصورة
رميات
استثناء الدولة غير القانوني | إذا لم يقوم TensorImage بتحميل البيانات مطلقًا |
---|
العامة ColorSpaceType getColorSpaceType ()
يحصل على نوع مساحة اللون من TensorImage
.
رميات
استثناء الدولة غير القانوني | إذا لم يقوم TensorImage بتحميل البيانات مطلقًا |
---|
نوع البيانات العام getDataType ()
يحصل على نوع بيانات TensorImage
.
عائدات
- نوع البيانات. حاليًا يتم دعم
DataType.UINT8
وDataType.FLOAT32
فقط.
كثافة العمليات العامة getHeight ()
يحصل على ارتفاع الصورة.
رميات
استثناء الدولة غير القانوني | إذا لم يقوم TensorImage بتحميل البيانات مطلقًا |
---|---|
غير الشرعيين استثناء حجة | إذا كانت البيانات الأساسية تالفة |
الصورة العامة getMediaImage ()
تقوم بإرجاع تمثيل Image
لهذا TensorImage
.
تعمل هذه الطريقة فقط عندما تكون TensorImage
مدعومة Image
، مما يعني أنك تحتاج أولاً إلى تحميل Image
من خلال load(Image)
.
هام: إنه مجرد مرجع. لا تقم بالتعديل. نحن لا نقوم بإنشاء نسخة هنا لأسباب تتعلق بالأداء، ولكن إذا كان التعديل ضروريًا، فيرجى عمل نسخة.
عائدات
- مرجع إلى
Bitmap
في تكوينARGB_8888
(القناة "A" غير شفافة دائمًا) أو فيALPHA_8
، اعتمادًا علىColorSpaceType
الخاص بـTensorBuffer
.
رميات
استثناء الدولة غير القانوني | إذا لم يقوم TensorImage بتحميل البيانات مطلقًا |
---|
TensorBuffer العام getTensorBuffer ()
تقوم بإرجاع تمثيل TensorBuffer
لـ TensorImage
مع نوع البيانات المتوقع.
سيتم تطبيق الصب والتثبيت الرقمي إذا كانت البيانات المخزنة مختلفة عن نوع بيانات TensorImage
.
هام: إنه مجرد مرجع. لا تقم بالتعديل. نحن لا نقوم بإنشاء نسخة هنا لأسباب تتعلق بالأداء، ولكن إذا كان التعديل ضروريًا، فيرجى عمل نسخة.
عائدات
- إشارة إلى
TensorBuffer
الذي يحتفظ ببيانات الصورة
رميات
استثناء الدولة غير القانوني | إذا لم يقوم TensorImage بتحميل البيانات مطلقًا |
---|
getWidth () العام
يحصل على عرض الصورة.
رميات
استثناء الدولة غير القانوني | إذا لم يقوم TensorImage بتحميل البيانات مطلقًا |
---|---|
غير الشرعيين استثناء حجة | إذا كانت البيانات الأساسية تالفة |
تحميل الفراغ العام (المخزن المؤقت TensorBuffer ، ColorSpaceType colorSpaceType)
يقوم بتحميل TensorBuffer
الذي يحتوي على قيم البكسل باستخدام ColorSpaceType
المحدد.
يدعم فقط ColorSpaceType.RGB
و ColorSpaceType.GRAYSCALE
. استخدم load(TensorBuffer, ImageProperties)
لأنواع مساحات الألوان الأخرى.
ملاحظة: إذا كان نوع بيانات buffer
لا يتطابق مع نوع بيانات TensorImage
، فسيتم تطبيق التحويل الرقمي والتثبيت عند استدعاء getTensorBuffer()
و getBuffer()
.
حدود
متعادل | TensorBuffer المراد تحميله. يجب أن يكون شكلها إما (h, w, 3) أو (1, h, w, 3) لصور RGB، وإما (h, w) أو (1, h, w) للصور ذات اللون الرمادي. |
---|---|
colorSpaceType |
رميات
غير الشرعيين استثناء حجة | إذا كان شكل المخزن المؤقت لا يتطابق مع نوع مساحة اللون، أو إذا كان نوع مساحة اللون غير مدعوم |
---|
تحميل الفراغ العام (صورة نقطية)
يقوم بتحميل كائن صورة Bitmap
في TensorImage
.
ملاحظة: إذا كان TensorImage
يحتوي على نوع بيانات آخر غير DataType.UINT8
، فسيتم تطبيق التحويل الرقمي والتثبيت عند استدعاء getTensorBuffer()
و getBuffer()
، حيث سيتم تحويل Bitmap
إلى TensorBuffer
.
هام: عند تحميل صورة نقطية، لا تقم بتعديل الصورة النقطية من جانب المتصل بعد الآن. سيعتمد كائن TensorImage
على الصورة النقطية. من المحتمل أن يقوم بتعديل الصورة النقطية أيضًا. في هذه الطريقة، نقوم بتنفيذ نهج النسخة الصفرية لتلك الصورة النقطية، وذلك ببساطة عن طريق الاحتفاظ بمرجعها. استخدم bitmap.copy(bitmap.getConfig(), true)
لإنشاء نسخة إذا لزم الأمر.
ملاحظة: للحصول على أفضل أداء، يرجى تحميل الصور بنفس الشكل لتجنب إعادة تخصيص الذاكرة.
حدود
صورة نقطية |
---|
رميات
غير الشرعيين استثناء حجة | إذا لم تكن bitmap في ARGB_8888 |
---|
تحميل الفراغ العام (int[] بكسل، int[] الشكل)
يقوم بتحميل مصفوفة int على هيئة بكسلات RGB في TensorImage
، مما يمثل وحدات البكسل الموجودة بالداخل.
ملاحظة: سيتم تطبيق التحويل الرقمي والتثبيت لتحويل القيم إلى نوع بيانات TensorImage
عند استدعاء getTensorBuffer()
و getBuffer()
.
حدود
بكسل | بكسلات RGB التي تمثل الصورة |
---|---|
شكل | يجب أن يكون شكل الصورة إما بالشكل (ح، ث، 3)، أو بالشكل (1، ح، ث، 3) |
رميات
غير الشرعيين استثناء حجة | إذا كان الشكل ليس (h, w, 3) ولا (1, h, w, 3) |
---|
تحميل الفراغ العام (البكسل العائم []، الشكل int [])
يقوم بتحميل مصفوفة عائمة على هيئة بكسلات RGB في TensorImage
، مما يمثل وحدات البكسل الموجودة بداخلها.
ملاحظة: إذا كان TensorImage
يحتوي على نوع بيانات آخر غير DataType.FLOAT32
، فسيتم تطبيق التحويل الرقمي والتثبيت عند استدعاء getTensorBuffer()
و getBuffer()
.
حدود
بكسل | بكسلات RGB التي تمثل الصورة |
---|---|
شكل | يجب أن يكون شكل الصورة إما بالشكل (ح، ث، 3)، أو بالشكل (1، ح، ث، 3) |
رميات
غير الشرعيين استثناء حجة | إذا كان الشكل ليس (h, w, 3) ولا (1, h, w, 3) |
---|
تحميل الفراغ العام ( ByteBuffer buffer، ImageProperties imageProperties)
يقوم بتحميل ByteBuffer
الذي يحتوي على قيم البكسل باستخدام ImageProperties
المحددة.
ملاحظة: إذا كان نوع بيانات buffer
لا يتطابق مع نوع بيانات TensorImage
، فسيتم تطبيق التحويل الرقمي والتثبيت عند استدعاء getTensorBuffer()
و getBuffer()
.
حدود
متعادل | |
---|---|
imageProperties |
رميات
غير الشرعيين استثناء حجة | إذا كان حجم المخزن المؤقت أقل من حجم الصورة المشار إليه بواسطة ارتفاع الصورة وعرضها ونوع مساحة اللون في ImageProperties |
---|
تحميل الفراغ العام (المخزن المؤقت TensorBuffer ، ImageProperties imageProperties)
يقوم بتحميل TensorBuffer
الذي يحتوي على قيم البكسل باستخدام ImageProperties
المحددة.
لن يتم استخدام شكل TensorBuffer
لتحديد ارتفاع الصورة وعرضها. قم بتعيين خصائص الصورة من خلال ImageProperties
.
ملاحظة: إذا كان نوع بيانات buffer
لا يتطابق مع نوع بيانات TensorImage
، فسيتم تطبيق التحويل الرقمي والتثبيت عند استدعاء getTensorBuffer()
و getBuffer()
.
حدود
متعادل | |
---|---|
imageProperties |
رميات
غير الشرعيين استثناء حجة | إذا كان حجم المخزن المؤقت أقل من حجم الصورة المشار إليه بواسطة ارتفاع الصورة وعرضها ونوع مساحة اللون في ImageProperties |
---|
تحميل الفراغ العام (صورة الصورة)
يقوم بتحميل كائن Image
في TensorImage
.
الاستخدام الرئيسي لهذه الطريقة هو تحميل كائن Image
كمدخل نموذج إلى https://www.tensorflow.org/lite/inference_with_metadata/task_library/overview . TensorImage
المدعوم بواسطة Image
غير مدعوم بواسطة ImageProcessor
.
*throws IllegalArgumentException إذا كان ImageFormat
image
ليس YUV_420_888
حدود
صورة |
---|