Lua API: ฟังก์ชัน#

set_debug#

set_debug(boolean debug_on)

พารามิเตอร์:

debug_on -- ส่งค่าที่ประเมินเป็น true (เปิดการดีบัก) หรือ false (ปิดการดีบัก)

ค่าที่ส่งคืน:

ไม่มี

เปิดหรือปิดการดีบัก เมื่อเปิดการดีบัก กล้องจะพยายามส่งข้อมูลดีบักที่เป็นข้อความและภาพผ่านพอร์ตอนุกรม ปิดการดีบักเมื่อโปรแกรมเสร็จสิ้นเพื่อปรับปรุงประสิทธิภาพ

print#

การใช้งาน: print("a message") / print("one plus one is ", 1+1)

พารามิเตอร์:

ส่งค่าได้มากเท่าที่ต้องการ

ค่าที่ส่งคืน:

ไม่มี

ฟังก์ชันดีบัก ใช้เพื่อพิมพ์ค่าต่างๆ CMUcam3 จะส่งค่าทั้งหมดที่ส่งเข้าฟังก์ชันนี้ไปยังปลั๊กอิน Eclipse CamScripter ซึ่งจะแสดงในพื้นที่คอนโซล

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 API: ค่าคงที่)

camera_set_colorspace#

camera_set_colorspace(integer space)

พารามิเตอร์:

space ความละเอียดใหม่สำหรับกล้อง ต้องเป็น CC3_COLORSPACE_YCRCB หรือ CC3_COLORSPACE_RGB

ค่าที่ส่งคืน:

ไม่มี

ตั้งค่าปริภูมิสีสำหรับ CMUcam3 เป็น YCRCB หรือ RGB (RGB เป็นค่าเริ่มต้น) ดูเพิ่มเติมที่ Lua API: ค่าคงที่

wait#

wait(integer ms)

พารามิเตอร์:

ms จำนวนมิลลิวินาทีที่จะรอ

ค่าที่ส่งคืน:

ไม่มี

รอ ms มิลลิวินาที

pixbuf_set_coi#

pixbuf_set_coi(integer coi)

ค่าที่ส่งคืน:

ไม่มี

ตั้งค่าแชนเนลที่สนใจสำหรับกล้อง กำหนดว่ากล้องจะบันทึกแชนเนลใดเมื่อถ่ายภาพ การตั้งค่า COI ให้เล็กลงสามารถเร่งการประมวลผลภาพได้ ค่าที่ถูกต้องสำหรับ COI สามารถพบได้ในค่าคงที่แชนเนลที่สนใจใน Lua API: ค่าคงที่

pixbuf_read_rows#

pixbuf_read_rows(image img, integer num_rows)

พารามิเตอร์:

img ออบเจกต์ image ที่แถวของ 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 พิกัด 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 ความกว้างของเทมเพลตที่เรากำลัง diff, 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) ที่แสดงถึงเซนทรอยด์ของสี ดู เอกสาร tracker สำหรับรายละเอียดเพิ่มเติม