TensorImage

TensorImage للفئة العامة

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 ( نوع البيانات نوع البيانات)
تهيئة كائن TensorImage بنوع البيانات المحدد.

الأساليب العامة

ثابت TensorImage
createFrom ( TensorImage src، DataType dataType)
ينشئ نسخة عميقة من TensorImage معينة بنوع البيانات المطلوب.
ثابت TensorImage
من صورة نقطية (صورة نقطية)
تهيئة كائن TensorImage الخاص بـ DataType.UINT8 باستخدام Bitmap .
الصورة النقطية
الحصول على صورة نقطية ()
تقوم بإرجاع تمثيل 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 (صورة نقطية)

الصورة النقطية العامة 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 .

عائدات

كثافة العمليات العامة 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

حدود
صورة