Lua API: Fonksiyonlar#
set_debug#
set_debug(boolean debug_on)
- Parametreler:
debug_on– true (hata ayıklama açık) veya false (hata ayıklama kapalı) olarak değerlendirilen bir değer geçirin- Dönüş Değerleri:
yok
Hata ayıklamayı açın veya kapatın. Hata ayıklama açıkken, kamera seri port üzerinden metin ve görüntü hata ayıklama bilgisi göndermeye çalışacaktır. Performansı artırmak için bir program bittiğinde hata ayıklamayı kapatın.
print#
Kullanım: print("a message") / print("one plus one is ", 1+1)
- Parametreler:
İstediğiniz kadar değer geçirin.
- Dönüş Değerleri:
yok
Değerleri yazdırmak için kullanılan hata ayıklama fonksiyonu. CMUcam3, bu fonksiyona iletilen tüm değerleri CamScripter Eclipse eklentisine gönderir; burada Konsol alanında görüntülenirler.
turn_on_led#
turn_on_led(integer led_number)
- Parametreler:
led_numberAçılacak CMUcam3 LED’inin numarası. Yalnızca 0, 1, 2 geçerli değerlerdir.- Dönüş Değerleri:
yok
CMUcam3 LED’lerinden birini açın.
turn_off_led#
turn_off_led(integer led_number)
- Parametreler:
led_numberAçılacak CMUcam3 LED’inin numarası. Yalnızca 0, 1, 2 geçerli değerlerdir.- Dönüş Değerleri:
yok
CMUcam3 LED’lerinden birini kapatın.
take_picture#
take_picture()
- Parametreler:
yok
- Dönüş Değerleri:
yok
CMUcam3 ile bir resim çekin ve resim arabelleğini (pixbuf) yükleyin.
print_picture#
print_picture()
- Parametreler:
yok
- Dönüş Değerleri:
yok
Yeni çekilen resmi, CamScripter hata ayıklama penceresinde görüntülenmek üzere seri port üzerinden gönderin. Bu fonksiyonu çağırmadan önce take_picture’ı çağırmalısınız - kendisi bir resim çekmez.
save_picture#
save_picture(string filename)
- Parametreler:
filenameResmi altına kaydetmeye çalışılacak dosya adı.- Dönüş Değerleri:
yok
Resim arabelleğinde şu anda bulunan resmi, aktarılan dosya adına kaydet. Dosya adı geçerli bir FAT16 dosya adı <8.3> olmalıdır, aksi takdirde bir hata döndürülür. Verilen dosya adıyla zaten bir dosya varsa, üzerine yazılır. Bu fonksiyonun kendisinin bir resim çekmediğini unutmayın - save_picture’ı çağırmadan önce take_picture’ı çağırmalısınız.
file_exists#
file_exists(string filename)
- Parametreler:
filename- Dönüş Değerleri:
dosyanın var olup olmadığını gösteren boolean
MMC/SD kartta aktarılan dosya adıyla bir dosya olup olmadığını test edin.
camera_set_resolution#
camera_set_resolution(integer resolution)
- Parametreler:
resolutionKamera için yeni çözünürlük- Dönüş Değerleri:
yok
CMUcam3’ün çözünürlüğünü ayarlayın. Çözünürlük ya yüksek ya da düşük olmalıdır (Lua API: Sabitler içindeki Kamera Çözünürlüğü Sabitleri’ne bakın).
camera_set_colorspace#
camera_set_colorspace(integer space)
- Parametreler:
spaceKamera için yeni çözünürlük, yaCC3_COLORSPACE_YCRCBYA DACC3_COLORSPACE_RGBolmalıdır- Dönüş Değerleri:
yok
CMUcam3 için renk uzayını YCRCB veya RGB olarak ayarlayın (RGB varsayılandır). Ayrıca Lua API: Sabitler sayfasına da bakın.
wait#
wait(integer ms)
- Parametreler:
msBeklenecek milisaniye sayısı- Dönüş Değerleri:
yok
ms milisaniye bekleyin.
pixbuf_set_coi#
pixbuf_set_coi(integer coi)
- Dönüş Değerleri:
yok
Kamera için ilgilenilen kanalları ayarlayın. Resim çekerken kameranın hangi kanalları kaydettiğini belirler. COI için daha küçük değerler ayarlamak görüntü işlemeyi hızlandırabilir. COI için geçerli değerler Lua API: Sabitler içindeki İlgilenilen Kanal Sabitleri’nde bulunabilir.
pixbuf_read_rows#
pixbuf_read_rows(image img, integer num_rows)
- Parametreler:
imgpixbuf satırlarının okunduğu bir image nesnesi,num_rowsOkunacak satır sayısı- Dönüş Değerleri:
Başarıyla okunan satır sayısı
Kameranın resim arabelleğinden (pixbuf) num_rows satırını, iletilen image nesnesine kopyalar.
pixbuf_get_width#
pixbuf_get_width()
- Parametreler:
yok
- Dönüş Değerleri:
pixbuf’un piksel cinsinden genişliği
Resim arabelleğinin (pixbuf) genişliğini al. Bunu çağırmadan önce ya take_picture ya da show_picture çağrılarak resim arabelleği yüklenmiş olmalıdır.
pixbuf_get_height#
pixbuf_get_height()
- Parametreler:
yok
- Dönüş Değerleri:
pixbuf’un piksel cinsinden yüksekliği
Resim arabelleğinin (pixbuf) yüksekliğini al. Bunu çağırmadan önce ya take_picture ya da show_picture çağrılarak resim arabelleği yüklenmiş olmalıdır.
pixel_new#
pixel_new()
- Parametreler:
yok
- Dönüş Değerleri:
Yeni bir pixel veri yapısı
Yeni bir piksel veri yapısı oluşturur ve döndürür. Yapı hakkında ayrıntılar için piksel belgelerine bakın. pixel yapısının kullanımı için ayrıca pixbuf_get_pixel ve get_pixel fonksiyonlarına bakın.
get_pixel#
get_pixel(pixel pxl, integer x, integer y)
- Parametreler:
pxlPiksel değerlerinin depolanacağı pixel veri yapısı.x,yResim arabelleği içinde alınacak pikselin x ve y koordinatları.- Dönüş Değerleri:
yok, piksel değerleri aktarılan pixel içinde depolanır
CMUcam3 resim arabelleğinden (pixbuf) tek bir pixel al. x ve y sırasıyla pixbuf_get_width ve pixbuf_get_height değerlerinden küçük olmalıdır. pixbuf içinde bir resim depolamak için take_picture çağrılmamışsa bu fonksiyon başarısız olmaz, ancak pixel içine eklenen değerler anlamsız olacaktır.
image_new#
image_new(integer width, integer height)
- Parametreler:
widthGörüntünün genişliği,heightGörüntünün yüksekliği- Dönüş Değerleri:
Yeni bir image veri yapısı.
Aktarılan genişlik, yükseklik ve pixsize ile yeni bir image veri yapısı al. image veri yapılarının kullanımı hakkında daha fazla bilgi için image belgelerine bakın.
İçeri aktarılan image veri yapısından bir pixel al. Pikselin RGB değerleri, aktarılan pixel veri yapısına kaydedilecektir. x parametresi image genişliğinden küçük olmalıdır ve y de image yüksekliğinden küçük olmalıdır.
framediff_new#
framediff_new(integer template_width, integer template_height)
- Parametreler:
template_widthFarkını aldığımız şablonun genişliği,template_heightŞablonun yüksekliği- Dönüş Değerleri:
Yeni bir framediff veri yapısı
Aktarılan şablon genişliği ve yüksekliği ile yeni bir framediff veri yapısı al. framediff yapıları genellikle CMUcam3 ile çekilen iki resim karesi arasındaki farkı değerlendirmek için kullanılır, ancak daha fazla bilgi için framediff belgelerine bakın.
framediff_scanline_start#
framediff_scanline_start(framediff fd)
- Parametreler:
fdKullanılacak framediff nesnesi- Dönüş Değerleri:
Başarılı olursa 1 döndürür.
framediff_scanline kullanarak kare farkı almak için gereken her şeyi başlatır. framediff yapısında ayarlanmış bir current_template olduğundan emin olur (veya framediff:get_load_frame() true ise mevcut şablonu yükler).
framediff_scanline#
framediff_scanline(image img, framediff fd)
- Parametreler:
- Dönüş Değerleri:
Başarılı olursa 1 döndürür
img’deki tüm pikselleri alır ve iki şablonun (current_template ve previous_template) karşılaştırılabilmesi için bunları framediff yapısındaki uygun yuvaya yükler. fd:get_load_frame true ise, img’deki pikselleri önceki şablon yuvasına yükler. fd:get_load_frame false ise, img’deki pikselleri current_template’e yükler.
framediff_scanline_finish#
framediff_scanline_finish(framediff fd)
- Parametreler:
fdKullanılacak framediff veri yapısı- Dönüş Değerleri:
İşlem başarılı olursa 1 döndürür.
framediff veri yapısındaki iki şablonu (current_template ve previous_template) karşılaştırır ve farklı olan piksel sayısını hesaplayarak bu değeri framediff:get_num_pixels içinde saklar.
print_color_tracker#
print_color_tracker(tracker tracker)
- Parametreler:
trackertracker, yazdırmak için kullanılan verileri sağlar- Dönüş Değerleri:
yok
tracker nesnesindeki verileri kullanarak CamScripter’da hata ayıklama bilgilerini yazdırır. Kamera resim arabelleğindeki resmi temsil eden bir dikdörtgen yazdırır; içinde izlenen renk için sınırlayıcı kutuyu temsil eden başka bir dikdörtgen ve resim içindeki rengin ağırlık merkezini gösteren kırmızı bir nokta bulunur.
print_rectangle#
print_rectangle(integer x, integer y, integer width, integer height [, integer red, integer green, integer blue])
- Parametreler:
x,ydikdörtgenin sol üst köşesinin grafik ekranının sol üst köşesinden uzaklık cinsinden koordinat konumudur.widthveheightdikdörtgenin genişliği ve yüksekliğidir. İsteğe bağlıred,greenveblueargümanları, dikdörtgenin çizileceği rengi bir RGB değeri olarak verir. Varsayılan renk siyahtır.- Dönüş Değerleri:
yok
CamScripter grafik sekmesinde width piksel genişliğinde ve height piksel yüksekliğinde bir dikdörtgen çizer. İsteğe bağlı red, green ve blue argümanları, 0 ile 255 arasındaki RGB değerlerini kullanarak dikdörtgenin rengini değiştirmeye olanak tanır.
print_line#
print_line(integer start_x, integer start_y, integer end_x, integer end_y [, integer red, integer green, integer blue])
- Parametreler:
Çizginin başlangıç noktası ve bitiş noktası ve çizginin rengini ayarlamak için isteğe bağlı argümanlar.
- Dönüş Değerleri:
yok
CamScripter grafik ekranında (start_x, start_y) noktasından (end_x, end_y) noktasına bir çizgi çizer. Çizginin RGB rengi, isteğe bağlı red, green ve blue argümanlarıyla belirtilebilir. Renk belirtilmezse varsayılan renk siyahtır.
print_oval#
print_oval(integer x, integer y, integer width, integer height [, integer red, intger green, integer blue])
- Parametreler:
Ovalin sol üst köşesi (x, y) ile belirtilir. Genişlik ve yükseklik piksel cinsindendir. Kırmızı, yeşil ve mavi, ovalin rengini ayarlamak için isteğe bağlı argümanlardır.
- Dönüş değerleri:
yok
CamScripter grafik ekranında bir oval çizer. Ovalin sol üst köşesi (x, y) noktasındadır. Ovalin RGB rengi, isteğe bağlı red, green ve blue argümanlarıyla belirtilebilir. Renk belirtilmezse varsayılan renk siyahtır.
clear_graphics#
clear_graphics()
- Parametreler:
yok
- Dönüş değerleri:
yok
CamScripter grafik ekranını temizleyin.
tracker_track_color#
tracker_track_color(tracker theTracker)
- Parametreler:
renk izlemeyi yapmak için kullanılan, ayarlanacak istenen RGB değeriyle ayarlanmış tracker nesnesi.
- Dönüş değerleri:
izlemenin gerçekleşip gerçekleşmediğini gösteren boolean. Renk bulunmasa bile true döndürür – yalnızca bir hata oluşursa false döndürür.
Aktarılan tracker nesnesini kullanarak CMUcam3’te bir rengi izleyin. Bir rengi izlemeye çalışmadan önce take_picture() çağrılmalıdır. Resim arabelleğini analiz eder ve renk için bir sınırlayıcı kutu ve rengin ağırlık merkezini temsil eden bir (x, y) değeri vermek üzere tracker nesnesindeki değerleri ayarlar. Daha fazla ayrıntı için tracker belgelerine bakın.