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
هو DataType.UINT8
. استخدم TensorImage(DataType)
إذا كانت أنواع البيانات الأخرى مفضلة.
تهيئة كائن TensorImage
بنوع البيانات المحدد.
عند الحصول على TensorBuffer
أو ByteBuffer
من TensorImage
، مثل استخدام getTensorBuffer()
و getBuffer()
، سيتم تحويل قيم البيانات إلى نوع البيانات المحدد.
ملحوظة: شكل TensorImage
غير ثابت. يمكن تعديله ليناسب شكل الصورة التي يتم تحميلها على TensorImage
.
نوع البيانات | نوع البيانات المتوقع لـ TensorBuffer الناتج. يتم دائمًا إصلاح النوع أثناء عمر TensorImage . لتحويل نوع البيانات، استخدم createFrom(TensorImage, DataType) لإنشاء نسخة وتحويل نوع البيانات في نفس الوقت. |
---|
غير الشرعيين استثناء حجة | إذا لم يكن dataType هو DataType.UINT8 أو DataType.FLOAT32 |
---|
ينشئ نسخة عميقة من TensorImage
معينة بنوع البيانات المطلوب.
src | TensorImage للنسخ منها |
---|---|
نوع البيانات | نوع البيانات المتوقع لـ TensorImage الذي تم إنشاؤه حديثًا |
-
TensorImage
الذي يتم نسخ بياناته منsrc
ونوع البيانات هوdataType
تهيئة كائن TensorImage
الخاص بـ DataType.UINT8
باستخدام Bitmap
.
صورة نقطية |
---|
تقوم بإرجاع تمثيل Bitmap
لـ TensorImage
.
سيتم تطبيق الصب والتثبيت الرقمي إذا لم تكن البيانات المخزنة uint8.
لاحظ أن الطريقة الموثوقة للحصول على وحدات البكسل من صورة نقطية ALPHA_8
هي استخدام copyPixelsToBuffer
. أساليب الصورة النقطية مثل `setPixels()` و`getPixels` لا تعمل.
هام: إنه مجرد مرجع. لا تقم بالتعديل. نحن لا نقوم بإنشاء نسخة هنا لأسباب تتعلق بالأداء، ولكن إذا كان التعديل ضروريًا، فيرجى عمل نسخة.
- مرجع إلى
Bitmap
في تكوينARGB_8888
(القناة "A" غير شفافة دائمًا) أو فيALPHA_8
، اعتمادًا علىColorSpaceType
الخاص بـTensorBuffer
.
استثناء الدولة غير القانوني | إذا لم يقوم TensorImage بتحميل البيانات مطلقًا |
---|
تُرجع تمثيل ByteBuffer
لـ TensorImage
بنوع البيانات المتوقع.
سيتم تطبيق الصب والتثبيت الرقمي إذا كانت البيانات المخزنة مختلفة عن نوع بيانات TensorImage
.
هام: إنه مجرد مرجع. لا تقم بالتعديل. نحن لا نقوم بإنشاء نسخة هنا لأسباب تتعلق بالأداء، ولكن إذا كان التعديل ضروريًا، فيرجى عمل نسخة.
إنه في الأساس اختصار لـ getTensorBuffer().getBuffer()
.
- إشارة إلى
ByteBuffer
الذي يحتفظ ببيانات الصورة
استثناء الدولة غير القانوني | إذا لم يقوم TensorImage بتحميل البيانات مطلقًا |
---|
يحصل على نوع مساحة اللون من TensorImage
.
استثناء الدولة غير القانوني | إذا لم يقوم TensorImage بتحميل البيانات مطلقًا |
---|
يحصل على نوع بيانات TensorImage
.
- نوع البيانات. حاليًا يتم دعم
DataType.UINT8
وDataType.FLOAT32
فقط.
يحصل على ارتفاع الصورة.
استثناء الدولة غير القانوني | إذا لم يقوم TensorImage بتحميل البيانات مطلقًا |
---|---|
غير الشرعيين استثناء حجة | إذا كانت البيانات الأساسية تالفة |
تقوم بإرجاع تمثيل Image
لهذا TensorImage
.
تعمل هذه الطريقة فقط عندما تكون TensorImage
مدعومة Image
، مما يعني أنك تحتاج أولاً إلى تحميل Image
من خلال load(Image)
.
هام: إنه مجرد مرجع. لا تقم بالتعديل. نحن لا نقوم بإنشاء نسخة هنا لأسباب تتعلق بالأداء، ولكن إذا كان التعديل ضروريًا، فيرجى عمل نسخة.
- مرجع إلى
Bitmap
في تكوينARGB_8888
(القناة "A" غير شفافة دائمًا) أو فيALPHA_8
، اعتمادًا علىColorSpaceType
الخاص بـTensorBuffer
.
استثناء الدولة غير القانوني | إذا لم يقوم TensorImage بتحميل البيانات مطلقًا |
---|
تقوم بإرجاع تمثيل TensorBuffer
لـ TensorImage
مع نوع البيانات المتوقع.
سيتم تطبيق الصب والتثبيت الرقمي إذا كانت البيانات المخزنة مختلفة عن نوع بيانات TensorImage
.
هام: إنه مجرد مرجع. لا تقم بالتعديل. نحن لا نقوم بإنشاء نسخة هنا لأسباب تتعلق بالأداء، ولكن إذا كان التعديل ضروريًا، فيرجى عمل نسخة.
- إشارة إلى
TensorBuffer
الذي يحتفظ ببيانات الصورة
استثناء الدولة غير القانوني | إذا لم يقوم TensorImage بتحميل البيانات مطلقًا |
---|
يحصل على عرض الصورة.
استثناء الدولة غير القانوني | إذا لم يقوم TensorImage بتحميل البيانات مطلقًا |
---|---|
غير الشرعيين استثناء حجة | إذا كانت البيانات الأساسية تالفة |
يقوم بتحميل 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 على هيئة بكسلات RGB في TensorImage
، مما يمثل وحدات البكسل الموجودة بالداخل.
ملاحظة: سيتم تطبيق التحويل الرقمي والتثبيت لتحويل القيم إلى نوع بيانات TensorImage
عند استدعاء getTensorBuffer()
و getBuffer()
.
بكسل | بكسلات RGB التي تمثل الصورة |
---|---|
شكل | يجب أن يكون شكل الصورة إما بالشكل (ح، ث، 3)، أو بالشكل (1، ح، ث، 3) |
غير الشرعيين استثناء حجة | إذا كان الشكل ليس (h, w, 3) ولا (1, h, w, 3) |
---|
يقوم بتحميل مصفوفة عائمة على هيئة بكسلات RGB في TensorImage
، مما يمثل وحدات البكسل الموجودة بداخلها.
ملاحظة: إذا كان TensorImage
يحتوي على نوع بيانات آخر غير DataType.FLOAT32
، فسيتم تطبيق التحويل الرقمي والتثبيت عند استدعاء getTensorBuffer()
و getBuffer()
.
بكسل | بكسلات RGB التي تمثل الصورة |
---|---|
شكل | يجب أن يكون شكل الصورة إما بالشكل (ح، ث، 3)، أو بالشكل (1، ح، ث، 3) |
غير الشرعيين استثناء حجة | إذا كان الشكل ليس (h, w, 3) ولا (1, h, w, 3) |
---|
يقوم بتحميل ByteBuffer
الذي يحتوي على قيم البكسل باستخدام ImageProperties
المحددة.
ملاحظة: إذا كان نوع بيانات buffer
لا يتطابق مع نوع بيانات TensorImage
، فسيتم تطبيق التحويل الرقمي والتثبيت عند استدعاء getTensorBuffer()
و getBuffer()
.
متعادل | |
---|---|
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
صورة |
---|