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)
print_picture#
print_picture()
- พารามิเตอร์:
ไม่มี
- ค่าที่ส่งคืน:
ไม่มี
ส่งภาพที่เพิ่งถ่ายผ่านพอร์ตอนุกรมเพื่อแสดงในหน้าต่างดีบักของ CamScripter คุณต้องเรียก take_picture ก่อนเรียกฟังก์ชันนี้ - ฟังก์ชันนี้ไม่ได้ถ่ายภาพเอง
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 และโหลดลงในช่องที่เหมาะสมในโครงสร้าง 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
print_color_tracker#
print_color_tracker(tracker tracker)
- พารามิเตอร์:
trackertracker ให้ข้อมูลที่ใช้ในการพิมพ์- ค่าที่ส่งคืน:
ไม่มี
ใช้ข้อมูลในออบเจกต์ tracker เพื่อพิมพ์ข้อมูลดีบักบน CamScripter พิมพ์สี่เหลี่ยมผืนผ้าที่แสดงถึงภาพในบัฟเฟอร์ภาพของกล้อง โดยมีสี่เหลี่ยมผืนผ้าอีกอันภายในที่แสดงถึงกล่องขอบเขตสำหรับสีที่ถูกติดตาม และจุดสีแดงที่แสดงเซนทรอยด์ของสีภายในภาพ
print_rectangle#
print_rectangle(integer x, integer y, integer width, integer height [, integer red, integer green, integer blue])
- พารามิเตอร์:
x,yคือตำแหน่งพิกัดของมุมบนซ้ายของสี่เหลี่ยมผืนผ้าเป็นระยะทางจากมุมบนซ้ายของหน้าจอกราฟิกwidthและheightคือความกว้างและความสูงของสี่เหลี่ยมผืนผ้า อาร์กิวเมนต์เสริมred,greenและblueกำหนดสีที่สี่เหลี่ยมผืนผ้าจะถูกวาดเป็นค่า RGB สีเริ่มต้นคือสีดำ- ค่าที่ส่งคืน:
ไม่มี
วาดสี่เหลี่ยมผืนผ้ากว้าง width พิกเซลและสูง height พิกเซลในแท็บกราฟิกของ CamScripter อาร์กิวเมนต์ red, green และ blue ที่เป็นตัวเลือกช่วยให้เปลี่ยนสีของสี่เหลี่ยมผืนผ้าโดยใช้ค่า RGB ระหว่าง 0 ถึง 255 ได้
print_line#
print_line(integer start_x, integer start_y, integer end_x, integer end_y [, integer red, integer green, integer blue])
- พารามิเตอร์:
จุดเริ่มต้นและจุดสิ้นสุดสำหรับเส้น และอาร์กิวเมนต์เสริมเพื่อตั้งค่าสีของเส้น
- ค่าที่ส่งคืน:
ไม่มี
วาดเส้นบนหน้าจอกราฟิกของ CamScripter จาก (start_x, start_y) ไปยัง (end_x, end_y) สามารถระบุสี RGB ของเส้นได้ด้วยอาร์กิวเมนต์ red, green และ blue ที่เป็นตัวเลือก สีเริ่มต้นคือสีดำ หากไม่ได้ระบุสี
print_oval#
print_oval(integer x, integer y, integer width, integer height [, integer red, intger green, integer blue])
- พารามิเตอร์:
มุมบนซ้ายของวงรีถูกระบุโดย (x, y) ความกว้างและความสูงมีหน่วยเป็นพิกเซล สีแดง สีเขียว และสีน้ำเงินเป็นอาร์กิวเมนต์เสริมเพื่อตั้งค่าสีของวงรี
- ค่าที่ส่งคืน:
ไม่มี
วาดวงรีบนหน้าจอกราฟิกของ CamScripter มุมบนซ้ายของวงรีอยู่ที่จุด (x, y) สามารถระบุสี RGB ของวงรีได้ด้วยอาร์กิวเมนต์ red, green และ blue ที่เป็นตัวเลือก สีเริ่มต้นคือสีดำ หากไม่ได้ระบุสี
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 สำหรับรายละเอียดเพิ่มเติม