واجهة Lua البرمجية: الدوال#

set_debug#

set_debug(boolean debug_on)

المعاملات:

debug_on -- مرّر قيمة تُقيَّم إما إلى true (تصحيح الأخطاء مفعّل) أو false (تصحيح الأخطاء متوقف)

القيم المُعادة:

لا يوجد

فعّل أو أوقف تصحيح الأخطاء. عندما يكون تصحيح الأخطاء مفعّلاً، ستحاول الكاميرا إرسال معلومات تصحيح الأخطاء النصية والصورية عبر المنفذ التسلسلي. أوقف تصحيح الأخطاء بمجرد انتهاء البرنامج لتحسين الأداء.

print#

الاستخدام: print("a message") / print("one plus one is ", 1+1)

المعاملات:

مرّر أي عدد من القيم كما تريد.

القيم المُعادة:

لا يوجد

دالة تصحيح أخطاء، تُستخدم لطباعة القيم. سترسل CMUcam3 جميع القيم المُمرَّرة إلى هذه الدالة إلى مكوّن CamScripter الإضافي في Eclipse، حيث ستُعرض في منطقة وحدة التحكم.

turn_on_led#

turn_on_led(integer led_number)

المعاملات:

led_number رقم مؤشر LED في CMUcam3 المراد تشغيله. 0، 1، 2 هي القيم الصالحة الوحيدة.

القيم المُعادة:

لا يوجد

شغّل أحد مؤشرات LED في CMUcam3.

turn_off_led#

turn_off_led(integer led_number)

المعاملات:

led_number رقم مؤشر LED في CMUcam3 المراد تشغيله. 0، 1، 2 هي القيم الصالحة الوحيدة.

القيم المُعادة:

لا يوجد

أوقف أحد مؤشرات LED في CMUcam3.

take_picture#

take_picture()

المعاملات:

لا يوجد

القيم المُعادة:

لا يوجد

التقط صورة باستخدام CMUcam3، وحمّل مخزن الصورة المؤقت (pixbuf).

save_picture#

save_picture(string filename)

المعاملات:

filename اسم الملف المراد محاولة حفظ الصورة تحته.

القيم المُعادة:

لا يوجد

احفظ الصورة الموجودة حالياً في مخزن الصورة إلى اسم الملف المُمرَّر. يجب أن يكون اسم الملف اسم ملف FAT16 صالحاً <8.3>، وإلا سيُعاد خطأ. إذا كان هناك ملف موجود بالفعل باسم الملف المُعطى، فسيُستبدل. لاحظ أن هذه الدالة لا تلتقط صورة بنفسها - يجب عليك استدعاء take_picture قبل استدعاء save_picture.

file_exists#

file_exists(string filename)

المعاملات:

filename

القيم المُعادة:

قيمة منطقية تشير إلى ما إذا كان الملف موجودًا

اختبر ما إذا كان هناك ملف على بطاقة MMC/SD باسم الملف الممرّر.

camera_set_resolution#

camera_set_resolution(integer resolution)

المعاملات:

resolution الدقة الجديدة للكاميرا

القيم المُعادة:

لا يوجد

اضبط دقة CMUcam3. يجب أن تكون الدقة إما عالية أو منخفضة (انظر ثوابت دقة الكاميرا في واجهة Lua البرمجية: الثوابت).

camera_set_colorspace#

camera_set_colorspace(integer space)

المعاملات:

space الفضاء اللوني الجديد للكاميرا، يجب أن يكون إما CC3_COLORSPACE_YCRCB أو CC3_COLORSPACE_RGB

القيم المُعادة:

لا يوجد

اضبط الفضاء اللوني لـ CMUcam3 إما إلى YCRCB أو RGB (وRGB هو الافتراضي). انظر أيضًا واجهة Lua البرمجية: الثوابت.

wait#

wait(integer ms)

المعاملات:

ms عدد المللي ثوانٍ المراد الانتظار

القيم المُعادة:

لا يوجد

انتظر ms مللي ثانية.

pixbuf_set_coi#

pixbuf_set_coi(integer coi)

القيم المُعادة:

لا يوجد

اضبط القنوات محل الاهتمام للكاميرا. تحدد القنوات التي تسجلها الكاميرا عند التقاط الصور. ضبط قيم أصغر لـ COI يمكن أن يسرّع معالجة الصور. يمكن العثور على القيم الصالحة لـ COI في ثوابت القناة محل الاهتمام في واجهة Lua البرمجية: الثوابت.

pixbuf_read_rows#

pixbuf_read_rows(image img, integer num_rows)

المعاملات:

img كائن صورة تُقرأ فيه صفوف pixbuf، num_rows عدد الصفوف المراد قراءتها

القيم المُعادة:

عدد الصفوف التي قُرئت بنجاح

انسخ num_rows صفاً من مخزن صورة الكاميرا (pixbuf) إلى كائن image المُمرَّر.

pixbuf_get_width#

pixbuf_get_width()

المعاملات:

لا يوجد

القيم المُعادة:

عرض pixbuf بوحدات البكسل

احصل على عرض مخزن الصورة (pixbuf). يجب أن يكون مخزن الصورة قد حُمِّل قبل استدعاء هذا عبر استدعاء إما take_picture أو show_picture.

pixbuf_get_height#

pixbuf_get_height()

المعاملات:

لا يوجد

القيم المُعادة:

ارتفاع pixbuf بوحدات البكسل

احصل على ارتفاع مخزن الصورة (pixbuf). يجب أن يكون مخزن الصورة قد حُمِّل قبل استدعاء هذا عبر استدعاء إما take_picture أو show_picture.

pixel_new#

pixel_new()

المعاملات:

لا يوجد

القيم المُعادة:

بنية بيانات pixel جديدة

ينشئ ويعيد بنية بيانات pixel جديدة. راجع توثيق pixel للحصول على تفاصيل حول البنية. راجع أيضاً pixbuf_get_pixel وget_pixel لاستخدام بنية pixel.

get_pixel#

get_pixel(pixel pxl, integer x, integer y)

المعاملات:

pxl بنية بيانات pixel التي تُخزَّن فيها قيم البكسل. x، y الإحداثيان السيني والصادي للبكسل المراد استرجاعه داخل مخزن الصورة المؤقت.

القيم المُعادة:

لا شيء، تُخزَّن قيم البكسل في pixel الممرّر

احصل على pixel واحد من داخل مخزن صورة CMUcam3 (pixbuf). يجب أن يكون x وy أقل من pixbuf_get_width وpixbuf_get_height على التوالي. إذا لم يُستدعَ take_picture لتخزين صورة في pixbuf فلن تفشل هذه الدالة، لكن القيم المُدرجة في pixel ستكون بلا معنى.

image_new#

image_new(integer width, integer height)

المعاملات:

width عرض الصورة، height ارتفاع الصورة

القيم المُعادة:

بنية بيانات image جديدة.

احصل على بنية بيانات image جديدة، بالعرض والارتفاع وحجم البكسل (pixsize) المُمرَّرة. راجع توثيق image لمزيد من المعلومات حول استخدام بنى بيانات image.

احصل على pixel من بنية بيانات image المُمرَّرة. ستُخزَّن قيم RGB للبكسل في بنية بيانات pixel المُمرَّرة. يجب أن يكون المعامل x أقل من عرض image، ويجب أن يكون y أقل من ارتفاع image.

framediff_new#

framediff_new(integer template_width, integer template_height)

المعاملات:

template_width عرض القالب الذي نحسب فرقه، template_height ارتفاع القالب

القيم المُعادة:

بنية بيانات framediff جديدة

احصل على بنية بيانات framediff جديدة، بعرض وارتفاع القالب المُمرَّرين. تُستخدم بنى framediff عموماً لتقييم الفرق بين إطاري صورة مُلتقطين بـ CMUcam3، لكن راجع توثيق framediff لمزيد من المعلومات.

framediff_scanline_start#

framediff_scanline_start(framediff fd)

المعاملات:

fd كائن framediff المراد استخدامه

القيم المُعادة:

يعيد 1 عند النجاح.

يهيّئ كل ما يلزم لإجراء حساب فرق الإطارات باستخدام framediff_scanline. يتأكد من وجود current_template مضبوط في بنية framediff (أو يحمّل القالب الحالي إذا كانت framediff:get_load_frame() صحيحة).

framediff_scanline#

framediff_scanline(image img, framediff fd)

المعاملات:

img بنية بيانات image، fd بنية بيانات framediff

القيم المُعادة:

يعيد 1 عند النجاح

يحصل على جميع البكسلات من img ويحمّلها في الفتحة المناسبة في بنية framediff، بحيث يمكن مقارنة القالبين (current_template وprevious_template). إذا كانت fd:get_load_frame صحيحة، سيحمّل البكسلات في img إلى فتحة القالب السابق. إذا كانت fd:get_load_frame خاطئة، يحمّل البكسلات من img إلى current_template.

framediff_scanline_finish#

framediff_scanline_finish(framediff fd)

المعاملات:

fd بنية بيانات framediff المراد استخدامها

القيم المُعادة:

يعيد 1 إذا نجحت العملية.

يقارن القالبين (current_template وprevious_template) في بنية بيانات framediff، ويحسب عدد البكسلات المختلفة، مخزّناً تلك القيمة في framediff:get_num_pixels.

clear_graphics#

clear_graphics()

المعاملات:

لا يوجد

القيم المُعادة:

لا يوجد

امسح شاشة رسومات CamScripter.

tracker_track_color#

tracker_track_color(tracker theTracker)

المعاملات:

كائن tracker المستخدم لإجراء تتبع الألوان، مضبوطًا على قيمة RGB المرغوبة.

القيم المُعادة:

قيمة منطقية تشير إلى ما إذا كان التتبع قد أمكن حدوثه. تُعيد true حتى لو لم يُعثر على اللون -- تُعيد false فقط إذا حدث خطأ.

تتبّع لونًا في CMUcam3 باستخدام كائن tracker الممرّر. يجب استدعاء take_picture() قبل محاولة تتبع لون. يحلل مخزن الصورة المؤقت، ويضبط القيم في كائن tracker ليعطي مربع إحاطة للون وقيمة (x, y) تمثل مركز ثقل اللون. انظر توثيق المتتبع لمزيد من التفاصيل.