Generating Python Code for Matrix Inner Product in SQLite Database

Pada waktu event wordcampid yang lalu saya sempat menulis kode untuk melakukan pencarian citra dari database (image retrieval). Kodenya ditulis ketika agak senggang atau ketika topik pembicaraannya tidak terlalu menarik. Saya menggunakan fitur berupa matriks 8×8 yang disimpan dalam database SQLite. Pada intinya saya berniat melakukan inner (dot) product melalui pernyataan SQL (supaya sekalian diurutin dan dibatasi top N 😀 ). Awalnya senang-senang saja, lama-lama saya bosan juga kalau harus mengetik 64 field dan 64 parameter untuk setiap fungsi (ada 3 fungsi yaitu mendefinisikan table, insert, dan find). jadi totalnya 64 x 5 = 320 field harus saya ketik manual. Saya tidak pakai perulangan karena malas melihat kode berisi penempelan string kala itu. Hari berikutnya akhirnya saya menulis kode untuk mengotomatisasi pekerjaan tersebut (bayangkan kalau saya ubah eksperimennya jadi fitur berukuran 12×12 atau 25×25).

Kode yang saya tulis ketika dijalankan akan menghasilkan file teks berisi kode python yang spesifik dengan dimensi matriks yang menjadi parameter.
Read More

Mengintegrasikan openCV 2.x dengan wxPython

sebetulnya topik ini sudah lama ada, namun sepertinya tulisan-tulisan lainnya masih menampilkan kode dengan interface python versi lama. wxPython merupakan pustaka antarmuka grafis (GUI) yang berbasis wxWidget yang sudah dibungkus untuk digunakan dalam kode python. Alasan utama menggunakan pustaka GUI selain dari bawaan openCV adalah keterbatasan pustaka GUI bawaan openCV (tidak ada koleksi widget dan dialog). Selain wxPython bisa juga menggunakan PyQt4 (Qt4 dibungkus untuk python). Namun, saya sedang tidak tertarik menggunakan PyQt karena hambatan lisensi. Oke, kembali ke topik utama mengintegrasikan bungkusan baru openCV. Bungkusan (wrapper) lama openCV sudah mulai tidak digunakan lagi dan tata-cara pemanggilan fungsi openCV di bungkusan yang baru lebih nyaman karena tidak banyak redundansi (misal opencv.cvQueryFrame() menjadi cv.QueryFrame() ).
Read More