You are on page 1of 3

[Jans Hendry / EE&IT UGM Indonesia]

August 6, 2011

Akses Kamera Web Cam dengan Matlab - 2

Pada artikel pertama anda telah diperkenalkan dengan dasar-dasar akses kamera. Artikel berikut ini akan membahas mengenai teknik yang dapat digunakan jika anda ingin mendapatkan beberapa gambar secara real time. Mengapa hal ini menjadi pembahasan? Karena anda akan diperkenalkan dengan fungsi baru dan beberapa parameter baru yang belum dijelaskan pada artikel sebelumnya. Untuk mempersingkat waktu, kita mulai artikel ini dengan menjelaskan beberapa parameter yang akan diset nantinya. Saya menganggap bahwa anda telah menyediakan variabel objek dari tutorial-1 yang bernama vd. vd.FramesPerTrigger Artinya anda menentukan jumlah frame yang akan diambil oleh kamera tepat setelah matlab menjalankan perintah start(vd). Bila parameter ini tidak anda ubah, maka secara default nilainya adalah 10 frame. vd.FrameGrabInterval Artinya anda menentukan pada frame ke berapa saja frame akan diambil oleh kamera. Secara default setiap frame akan diambil. Pada saat anda menset nilai pada parameter ini, saat fungsi start(vd) dimulai, maka matlab akan mengambil frame pertama, lalu mulai menjalankan instruksi dari parameter ini. Misalnya anda memberikan nilai 10 pada parameter ini, maka setelah frame pertama diambil, lalu instruksi parameter ini mulai dijalankan pada frame ke dua. Nah untuk itu frame berikutnya yang akan diambil oleh matlab adalah frame ke 11 karena frame mulai instruksi dijalankan adalah dari frame ke-2. vd.TimeOut Parameter ini berfungsi ketika anda mengubah-ubah parameter dari vd.FrameGrabInterval. Semakin besar anda memberikan nilai, maka semakin banyak waktu yang dibutuhkan. Sehingga ketika waktu yang dibutuhkan oleh matlab melebihi vd.TimeOut maka akan terjadi pesan error. Secara default timeout nya bernilai 10 detik. Sehingga perlu diberi nilai lebih besar dari itu. imaqmontage(data) Fungsi ini berperan dalam menampilkan semua frame yang telah kita ambil. Bila pada artikel-1 kita menggunakan image, maka sekarang tidak bisa lagi. Karena image hanya bisa menampilkan matriks berukuran MxNx3. Sementara itu format dari matriks baru yang akan ditampilkan adalah MxNx3xn, dimana n merupakan jumlah dari frame yang akan kita ambil. Bila anda sudah cukup mengerti arti dari parameter tersebut, kita akan lanjutkan dengan program yang sudah bisa digunakan langsung. Parameter-parameter ini saya tentukan sendiri, oleh karena 1

[Jans Hendry / EE&IT UGM Indonesia]

August 6, 2011

itu tidak semua parameter yang ada kita gunakan. Untuk lebih jelas mengenai parameter yang ada perlu anda merujuk ke MATLAB HELP. Perhatikan program di bawah ini:

vd=videoinput('winvideo',1,'YUY2_1280x720'); set(vd,'SelectedSourceName','input1'); vd.ReturnedColorSpace='rgb'; vd.FramesPerTrigger=20; vd.FrameGrabInterval=10; vd.TimeOut=100; preview(vd); start(vd) gambar=getdata(vd); % gambar=getsnapshot(vd); imaqmontage(gambar); save g.mat gambar delete(vd);

Perhatikan eksekusi dari program di atas:

Pada frame 1 dan 2 anda melihat bahwa latarbelakang berwarna merah. Hal ini terjadi karena saat itu kamera sedang mempersiapkan dirinya terhadap objek yang diambil terutama dalam kondisi cahaya yang diterima oleh kamera.

[Jans Hendry / EE&IT UGM Indonesia]

August 6, 2011

Untuk mengetahui berapa banyak matriks yang telah kita dapat, ketikkan instruksi ini di Command Window: >> size(gambar) ans = 720 1280 3 20

Tampak bahwa kita memiliki citra RGB dengan jumlah frame 20 buah. Setelah anda mengenal tentang bagaimana cara mengambil beberapa frame secara berurutan menggunakan matlab, sekarang kita akan mencoba menampilkan mereka dalam sebuah video atau bisa dikatakan movie.

load g.mat imaqmontage(gambar); for ii=1:20 M(ii)=im2frame(gambar(:,:,:,ii)); end figure, movie(M);

Terlebih dahulu anda harus memanggil g.mat yang berisi matriks dari frame yang telah kita ambil sebelumnya. Lalu dengan perintah im2frame, kita akan mengubah tiap data gambar yang telah menjadi image tersebut menjadi frame dalam sebuah video atau movie. Tapi, kita mungkin saja membutuhkan video tersebut tersimpan dalam AVI. Untuk itu perhatikan program berikut:
load g.mat imaqmontage(gambar); vid=avifile('movi.avi', 'Compression', 'None', 'Quality', 75); for ii=1:20 M=im2frame(gambar(:,:,:,ii)); vid = addframe(vid,M); end vid=close(vid);

Penjelasan tentang video akan dijelaskan pada artikel berikutnya. Anda bisa melakukan modifikasi misalnya menyatukan beberapa program tersebut untuk mendapatkan pengambilan gambar dan mengubahnya menjadi movie atau AVI secara real time. ~~~ TERIMA KASIH ~~~ 3

You might also like