Category Archives: OpenCV
Pembelajaran Image processing menggunakan OpenCV dan MS studio 2010
Program 8: razia orang cakep
Keluar sejenak dari fokus kita ya, tapi masih yang sederhana koq
sesuai dengan judulnya.
tau kalu kita cakep darimana hayoo??
pastinya kan dari wajahnya nih,
sebelum memulai belajar kali ini, ajak siapa gitu, mumpung malam minggu, berduaan di depan webcam.
source code dapat diambil disini
mohon maaf bagi yang terkena razia orang cakep, diambil dari koran batam pos, 30 mei 2011 sewaktu Politeknik Negeri batam sukses jadi tuan rumah dan juara umum Kontes robot Regional 1 Sumatra, alna gak pede ma muka sendiri, haha…
Read the rest of this entry
Program 7b: Hough Transform Circle
Yup kita lanjut lagi. jika kemarin kita mencoba hough transform untuk mendeteksi garis. kini kita mencoba mendeteksi lingkaran walaupun gak begitu bulat sempurna ya.
source code dapat diambil disini
Program 7a: Hough Transform Line
Hough transform digunakan untuk mendeteksi adanya garis pada sebuah gambar, akan tetapi kini berkembang lebih lanjut, bahkan dapat mendeteksi lingkaran/ elipse maupun bentuk lainnya.
Jangan ditanya bagaimana prosesnya mendeteksinya, yang penting disini adalah team OpenCV sudah membuat fungsinya, dan kita belajar bagaimana mengolah output dari hough tranform ini. mulai dari yang sederhana terlebih dahulu yaitu garis.
Oia… kabar gembira nih, mulai dari latihan program 7 ini, source code sudah tidak dalam gambar lagi, karena layar monitor pc kantor (1024×768) sudah tidak mencukupi untuk di printscreen source lagi. lain halnya kalu saya buat dirumah, monitor pc dirumah saya yang full HD (1920x 1080) .
lanjut lagi, source code nya disini canny & hough transform.txt
sorry bentuknya pdf, pasti agak berantakan 😦
gak bisa upload bentuk lain(kendala di wordpress-nya nih)
Dan ini bentuk dari eksekusi program houghnya.
CvMemStorage* storage = cvCreateMemStorage(0);
berfungsi semacam array buffer untuk penyimpanan data dari hough-nya
lines = cvHoughLines2( canny, storage, CV_HOUGH_PROBABILISTIC, 1, CV_PI/180, 80,30, 10 );
nah ini dia pemanggilan fungsi hough yang line-nya. terlihat, gambar yang diolah diambil dari gambarnya canny lalu output disimpan di strorage. mode yang dipakai adalah hough probabilistic. yang lebih effisien jika gambar hanya memiliki sedikit garis yang panjaaaang, (garis digambar kita kan pendek2 ya). angka 1 itu nilai rho resolusi jarak antar pixel yang berelasinyakita setting 1, kemudian jangkauan derajat diisi 180 derajat (tp karena komputer pake satuan radian, kita mesti membaginya dalam radian, jadi digunakan phi/180). 30-nya nilai thresholdnya. 10-nya kagak ngerti dah.
for( i = 0; i < lines -> total; i++ ) {
untuk masing-masing koordinat garis dari urutan 0 hingga koordinat garis yang ke total.
cvLine( frame, line[0], line[1], CV_RGB(0,255,0), 2, 8 );
ini untuk buat garisnya dengan garna hijau ( CV_RGB(0,255,0)). ketebalan 2 linetype-nya 8
selesai deh program hough transformnya yang line-nya.
gampang buatnya, sulit ngejelasinnya. semoga teman-teman maklum ya.
tujuan belajar hough transform ini bagi saya untuk
mendeteksi garis pada lapangan bola robosoccer dan gawangnya, mendeteksi lingkaran pada bola. dan akhirnya mendeteksi koordinat posisi robot (ini yg paling susah).
pelajaran kita berikutnya adalah mendeteksi lingkaran.
mohon komentar dari teman-teman.
dan terima kash telah meluangkan waktu bersama blog toar.
Program 6: Canny Edge Detection
Pelajaran berikutnya setelah, tampilan webcam kita buat menjadi grayscale, kini kita akan menambahkan edge detection berupa canny
seperti biasa
source code bisa dibaca pada file gambarnya.
sebagai permulaan belajar, menulis lebih baik daripada copy paste.
Program 5: Filter Grayscale
Nah jika sudah mencapai program 5 ini. berarti kita sudah menguasai dan sudah bisa menangani inputan program OpenCV ini. gambar sudah, video sudah, webcam juga sudah, kira-kira inputan dari mana lagi ya yang belum tertangani. Dipikirkan dulu, kemudian ntik kasih komentar ya dibawah.
Sekarang kita mulai masuk ke bagian kulit yang lebih dalam lagi dari OpenCV ini. Fungsi grayscale merupakan fungsi yang sangat penting dalam OpenCV. dikarenakan untuk mengolah gambar lebih lanjut, si OpenCV ini tidak begitu memerlukan gambar berwarna untuk menghemat waktu eksekusi.
coba dibayangkan kayak gini deh. 1 pixel memiliki sebuah warna RGB, yang masing-masing channel R,G,B memiliki rentang data dari 0-255. jika kita memproses data berwarna maka 1 pixel memakan memory 3byte. sedangkan jika kita ubah kedalam grayscale, kita cukup mewakili 1 pixel dengan 1channel warna yaitu grayscale.
Dikarenakan saya belajar OpenCV ini saya berkonsentrasi dalam robotic vision. maka disetiap pembelajaran saya mengusahakan menggunakan inputan berupa webcam, kecuali saya tidak punya webcam ataupun kondisi lapangan yang akan dideteksi.
sebagai permulaan, program webcam yang saya gunakan seperti ini, sedikit berbeda dari program webcam sebelumnya, cuman gak banyak koq.
Program 4: Menampilkan Webcam
Nah setelah kita bisa menampilkan gambar lalu video, kini kita akan membuat program opencv agar dapat menampilkan video dari webcam
source code bisa dibaca pada file gambarnya.
sebagai permulaan belajar, menulis lebih baik daripada copy paste.
Program 3: Menampilkan video
Serupa dengan program menampilkan gambar sebelumnya.
Untuk menampilkan file video hanya diperlukan sedikit perubahan pada bagian programnya.
source code bisa dibaca pada file gambarnya.
sebagai permulaan belajar, menulis lebih baik daripada copy paste.