Seperti yang kita ketahui bersama, webcam adalah alat
standar yang biasa digunakan pada komputer ketika kita ingin melibatkan
video dalam aktivitas kita. Kegiatan ini misalnya chating menggunakan
Skype, Yahoo Messager, dan sebagainya. Untuk keperluan dibidang
robotika, webcam dapat dijadikan sebagai sensor visual pada robot
vision. Salah satu perangkat lunak yang tangguh untuk proses pengolahan
citra yang melibatkan video adalah MATLAB. Nah, pada kesempatan ini,
kita akan membahas bagaimana cara mengaktifkan webcam menggunkan MATLAB.
Pada kesempatan ini, kita akan menggunakan
MATLAB 2014a untuk mengaktifkan webcam. Syarat utama yang harus kita
lakukan adalah memastikan MATLAB kita telah mengikutkan Image Acquisition Toolbox.
Syarat kedua adalah memastikan bahwa adaptor webcam telah terinstal
pada MATLAB. Pada MATLAB versi 2014a, adaptor ini belum terinstal secara
otomatis. Oleh karena itu, kita harus menginstalnya terlebih dahulu.
Proses instalasi telah kita bahas pada ulasan sebelumnya. Yup.... langsung saja kita ikuti langkah-langkah berikut:
Pastikan adaptor kita telah terinstal pada MATLAB dengan mengetikan sintaks imaqhwinfo pada Command Window dan amati respon dari MATLAB
>> imaqhwinfo
ans =
InstalledAdaptors: {'winvideo'}
MATLABVersion: '8.3 (R2014a)'
ToolboxName: 'Image Acquisition Toolbox'
ToolboxVersion: '4.7 (R2014a)'
ans =
InstalledAdaptors: {'winvideo'}
MATLABVersion: '8.3 (R2014a)'
ToolboxName: 'Image Acquisition Toolbox'
ToolboxVersion: '4.7 (R2014a)'
Amati bahwa nama adaptor
yang terinstal adalah winvideo. Ini adalah
adaptor standar yang ketika kita menggunakan webcam berbasis sistem operasi
Windows. Selanjutnya, mari kita buat perintah yang spesifik daripada perintah
sebelumnya.
>> dev = imaqhwinfo('winvideo')
dev =
AdaptorDllName: 'C:\MATLAB\SupportPackages\R2014a\genericvideo\adapt...'
AdaptorDllVersion: '4.7 (R2014a)'
AdaptorName: 'winvideo'
DeviceIDs: {1x0 cell}
DeviceInfo: [1x0 struct]
>> dev.DeviceInfo
ans =
DefaultFormat: 'YUY2_160x120'
DeviceFileSupported: 0
DeviceName: 'USB2.0 Camera'
DeviceID: 1
VideoInputConstructor: 'videoinput('winvideo', 1)'
VideoDeviceConstructor: 'imaq.VideoDevice('winvideo', 1)'
SupportedFormats: {1x5 cell}
Amati bahwa format default dari webcam adalah 'YUY2_160x120'.
Informasi ini berarti bahwa webcam anda menggunakan format YUY2 untuk
ekoding format warna pada gambar yang diambil untuk meghasilkan video.
Contoh format lain misalnya RGB24 dan YUYV. Keterangan 160x120
menunjukkan ukuran piksel video Anda. Mari kita coba membuat objek video
berdasarkan keterangan sebelumnya dengan menggunakan sintaks videoinput dan lihat hasilnya dengan sintaks preview.
>> vid = videoinput('winvideo');
>> preview(vid)
Sudah kita duga bersama bahwa video yang dihasilkan cukup kecil, yaitu
160x120. Nah, sekarang mari kita perbesar. Kembali ke object dev yang di atas. Mari kta cari apa saja format yang disuport oleh webcam kita selain ukuran 160x120:
ans =
Columns 1 through 4
'YUY2_160x120' 'YUY2_176x144' 'YUY2_320x240' 'YUY2_352x288'
Column 5
'YUY2_640x480'
Ternyata formatnya cukup banyak juga. Mari kita mencoba frame yang lebih besar, misalnya 320x240. Namun sebelum itu, coba amati berapa ID dari device kita. Berdasarkan keterangan sintaks kedua yang telah kita ketikkan, yaitu dev = imaqhwinfo('winvideo'), kita ketahui bahwa ID dari webcam kita adalah 1. Mari kita mengubah ukuran frame kita. Oya, jangan lupa ditutup dulu video kita dengan perintah: closepreview(vid).
>> closepreview(vid)
>> vid = videoinput('winvideo',1,'YUY2_320x240');
>> preview(vid)
Yup, gambarnya sudah cukup besar. Jika kita masih bingung menggunakan sintaks videoinput,
kami sarankan untuk membeca keterangan lebih lanjut pada MATLAB Help.
Nah, kira-kira apa yang bisa kita lakukan selanjutnya? Mari kita capture satu gambar dari video kita. Kita gunakan webcam sebagai kamera untuk mengambil gambar. Gunakan perintah getsnapshot untuk mengambil gambar, dan perlihatkan hasilnya menggunakan sintaks imshow, seperti berikut:
>> gambar = getsnapshot(vid);
>> imshow(gambar)
Mmmm... amati bahwa hasil yang ditampilkan tidak sesuai dengan harapan
kita. Ini adalah pengaruh format YUY2 yang telah kita bahas sebelumnya.
Jika kita menggunakan format lain, seperti RGB24, mungkin hasilnya sudah
sesuai dengan harapan kita, jadi tidak perlu kita ubah lagi. Untuk saat
ini, mari kita ubah format warna agar sesuai yang kita inginkan.
Gunakan sintaks ycbcr2rgb untuk mengubahnya, dan jalan lupa kita tutup dulu gambar sebelumnya dengan perintah close.
>> close
>> gambarRGB = ycbcr2rgb(gambar);
>> imshow(gambarRGB)
Oke... gambar sudah sesuai dengan apa yang kita inginkan. Sekarang, mari
kita simpan gambar kita. Misalnya, saya mau menyimpannya menggunakan
format .PNG. Pada MATLAB, sintaks yang digunakan untuk menyimpan data
menjadi citra/gambar adalah imwrite. Kita simpan data sebelumnya, yaitu gambarRGB dengan nama gambarku.png.
Secara default, gambar akan tersimpan pada folder \Documents\MATLAB.
Jika ingin menyimpan di lokasi lain, misalnya di direktori D:\ , bisa kita ubah menggunakan
sintaks berikut:
RANGKUMAN
Mari kita rangkum pembahasan kita. Jika kita telah mengetahui format
webcam kita, maka kita dapat rangkum sintaks yang telah kita bahas
sebelumnya:
>> vid = videoinput('winvideo',1,'YUY2_320x240');
>> preview(vid)
>> gambar = getsnapshot(vid);
>> gambarRGB = ycbcr2rgb(gambar);
>> imwrite(gambarRGB,'gambarku.png');
Okay.... selesai sudah pembahasan kita pada kesempatan kali ini... semoga bermanfaat
4 komentar:
Trimakasih materinya.
Saya ingin menanyakan, mengapa mini dv camera saya tidak terdeteksi di Device ID? jadi yang keluar hanya 1 DeviceIDs -> webcam laptop.
Mohon bantuannya, mungkin jawabannya bisa dikirim ke email saya
Mantap. Makasih
mas jika ingin menghubungkan ip kamera dengan matlab bagaimana caranya?
Kamera sudah jalan tapi belum juga mau mendeteksi
Posting Komentar