#IMGCV 2: Sliding Window

Harits Abdurrohman
otakbeku
Published in
3 min readApr 16, 2019

Materi sebelumnya:

#IMGCV 1: Revisiting Computer Vision

Sliding Window merupakan sebuah metode yang paling umum digunakan dalam pemrosesan citra digital. Proses ini digunakan untuk mempermudah dalam mengestraksi sebuah fitur secara lokal maupun untuk membentuk sebuah informasi. Hemat kata, sliding window adalah sebuah metode yang menggunakan window yang bergeser sebesar ukuran perpindahannya untuk mempermudah atau memperkecil komputasi yang dilakukan. Sliding window ini terdiri dari dua parameter yakni ukuran window atau window size dan displacement size atau besara perpindahan. Keduanya saling berpengaruh satu sama lain. Jika ukuran perpindahan kurang dari ukuran window maka akan terjadi tumpang-tindih antar window. Hal ini biasa disebut dengan overlapping sliding window. Terkadang overlapping sliding window ini dapat menghasilkan fitur yang lebih kuat dibanding dengan yang tidak tumpang-tindih.

Photo by Ron Dauphin on Unsplash

Pada tulisan kali ini saya coba bahas tahap demi tahap untuk mengimplementasikan sliding window ini. Sebelum memulai ada baiknya kalian sudah meng-install OpenCV. OpenCV ini adalah salah modul di python yang digunakan untuk melakukan pemrosesan citra digital. Dalam rubik ini saya akan lebih sering menggunakan OpenCV, jika kalian ingin mencoba silahkan meng-install-nya. Saya biasa menggunakan distribusi dari pypi. Versi yang saya gunakan adalah versi 3.4.5.20. Sedangkan versi terakhirnya adalah 4.1. Bisa kalian cek di sini. Kalian juga bisa menggunakan dari distribusi lain seperti conda. Bisa dicek di sini

Perintah meng-install OpenCV via pypi (Untuk versi terakhir)

pip install opencv-python

Untuk versi lain

pip install opencv-python==3.4.5.20

Ketika sudah cek dengan perintah berikut

python -c "import cv2; print(cv2.__version__)"

Maka akan mencetak versi dari OpenCV yang kalian install. Contoh

3.4.5

Kembali ke proses sliding window. Siapkan editor favorit kalian dan coba potongan script berikut.

Pertama membaca berkas gambar. Jika kalian familiar dengan matlab, fungsi untuk membaca gambar yang tersedia oleh OpenCV mempunyai nama fungsi yang sama. Berikut adalah potongan scriptnya.

Ambil ukuran dari gambar, baris dan kolom. Pada baris 5, variabel img_size menyimpan ukuran baris dan kolom dari gambar yang telah dibaca. Kalian bisa melihat ukurannya dengan menaruh print('Ukuran gambar {}'.format(img_size)) di bawah baris 5.

Atur ukuran perpindahan dan window di baris 6 dan 7. Jika dilihat dari nilai yang dimasukkan ke displacement_size menyatakan kalau sliding window yang dibuat adalah overlapping sliding window.

Membuat perulangan untuk memindahkan window. Proses sliding window tidak akan berjalan sendirinya, maka perlu dilakukan perulangan untuk memindahkan koordinat dari windownya. Perulangan tersebut dapat dilihat di baris 9 sampai dengan 17 dimana window adalah variabel yang menyimpan potongan dari gambar. Jika kalian tampilkan variabel window, maka kalian akan mendapati bahwa window adalah potongan dari gambar dengan ukuran window_size .

Terakhir, visualisasi sliding window dengan cv2.rectangle . OpenCV mempunyai fungsi untuk memberikan gambar. Dibawah ini adalah script lengkapnya. Saya menambahkan fungsi agar kalian dapat melihat perpindahannya secara horizontal dengan menekan huruf n dan vertikal dengan huruf q . Untuk keluar tekan q kemudian y .

Berikut adalah contoh hasilnya menggunakan gambar zebra diatas.

Jika kalian memiliki kesulitan dalam memahami script tersebut, tanyakan saja langsung via surel atau DM ke Twitter saya.

Salam (16/04/2019)

--

--

Harits Abdurrohman
otakbeku

Interest with machine learning, image processing, computer vision or data science