Author Archives: adi pamungkas

Pengolahan Citra Biner


Penghitungan terhadap atribut-atribut yang melekat pada suatu objek dalam citra digital secara sederhana dapat dilakukan dengan cara mengkonversi citra asli (RGB ataupun grayscale) menjadi citra biner terlebih dahulu. Setelah diperoleh citra biner, maka selanjutnya atribut-atribut (misalnya luas dan keliling) dapat dihitung. Namun terkadang citra biner tersebut perlu diolah lebih lanjut agar citra biner benar-benar tepat merepresentasikan objek yang dimaksud.

Berikut ini merupakan contoh aplikasi pemrograman matlab untuk melakukan proses segmentasi  dan analisis citra. Langkah-langkah nya yaitu:
1. Membaca dan menampilkan citra asli. Pada contoh ini citra yang digunakan adalah citra ‘airplane.jpg’ di mana objek yang dikehendaki adalah berupa pesawat, sedangkan background adalah berupa langit.

clc; clear; close all; warning off all;

Img = imread('airplane.jpg');
figure, imshow(Img);

sehingga diperoleh tampilan

-read more->

Pengolahan Citra untuk Deteksi Warna Kulit (Skin Detection)


Deteksi warna kulit (skin color detection) merupakan salah satu proses segmentasi yang memisahkan region objek dalam citra berdasarkan pada perbedaan warna. Objek yang memiliki warna tertentu dipisahkan dengan objek yang memiliki warna lainnya. Hasil segmentasi dapat digunakan untuk proses selanjutnya seperti ekstraksi ciri atau klasifikasi citra. Pada contoh ini, warna kulit didefiniskan dalam ruang warna  YCbCr dengan nilai Cb antara 77 s.d 127 dan nilai Cr antara 133 s.d 173.

Deteksi warna kulit merupakan salah satu tahapan awal dalam computer vision untuk mendeteksi hal-hal yang berkaitan dengan manusia (people detection). Deteksi warna kulit dapat dijadikan sebagai metode segmentasi  untuk pengenalan wajah (face recognition) maupun pengenalan organ tubuh lainnya. Sistem tersebut dapat dikembangkan lebih lanjut untuk sistem biometrik.

Langkah-langkah proses segmentasi warna kulit adalah sebagai berikut:
1. Melakukan penyeimbangan warna RGB (Color Balanced 24-bit RGB Image)
2. Melakukan transformasi ruang warna RGB menjadi YCbCr
3. Melakukan segmentasi warna kulit berdasarkan nilai Cb antara 77 s.d 127 dan nilai Cr antara 133 s.d 173
4. Menampilkan hasil segmentasi

Hasil segmentasi ditunjukkan pada gambar berikut:

No                     Citra Asli      Hasil Deteksi Warna Kulit
1
2
3
4

-read more->

Jaringan Syaraf Tiruan Untuk Pengenalan Pola


Berikut ini merupakan contoh aplikasi pemrograman matlab untuk mengklasifikasi bentuk suatu objek dalam citra digital menggunakan algoritma jaringan syaraf tiruan propagasi balik (backpropagation neural network).

Pada contoh ini dilakukan pengklasifikasian terhadap bentuk segi-3, segi-4, dan segi-5. Ciri yang digunakan untuk membedakan ketiga jenis bentuk tersebut adalah metric dan eccentricity.

Metric merupakan nilai perbandingan antara luas  dan keliling objek. Sedangkan eccentricity merupakan nilai perbandingan antara jarak foci ellips minor dengan foci ellips mayor suatu objek. (Materi mengenai ekstraksi ciri lebih lanjut dapat dilihat pada laman berikut ini: Ekstraksi Ciri Citra).

Langkah-langkah pemrograman matlab untuk mengklasifikasi bentuk suatu objek dalam citra digital menggunakan matlab adalah sebagai berikut:
1. Menyiapkan data latih untuk proses pelatihan (training). Pada proses ini digunakan 45 citra data latih yang terdiri dari 15 citra segi-3, 15 citra segi-4, dan 15 citra segi-5.

-read more->

Jaringan Syaraf Tiruan untuk Prediksi menggunakan Matlab


Jaringan syaraf tiruan merupakan algoritma klasifikasi yang meniru prinsip kerja dari jaringan syaraf manusia. Algoritma ini memetakan data masukan pada layer masukan menuju target pada layer keluaran melalui neuron-neuron pada layer tersembunyi.

Data masukan dirambatkan maju, dihubungkan oleh bobot-bobot masukan yang sebelumnya telah diinisialisasi secara acak menuju neuron pada layer tersembunyi

Pada layer tersembunyi, data masukan yang telah dihubungkan dengan bobot tersebut kemudian diproses menggunakan fungsi aktivasi. Selanjutnya data hasil olahan dari layer tersembunyi dihubungkan oleh bobot-bobot tersembunyi menuju neuron pada layer keluaran.

Hasil yang diperoleh kemudian dibandingkan dengan data target sehingga diperoleh tingkat kesalahan (error). Apabila tingkat kesalahan yang diperoleh lebih kecil daripada tingkat kesalahan yang sebelumnya telah ditetapkan (target error), maka proses perambatan akan berhenti. Namun apabila tingkat kesalahan masih lebih besar daripada tingkat kesalahan tetapan maka dilakukan proses perambatan balik dengan melakukan pembaharuan bobot.

Salah satu aplikasi dari algoritma jaringan syaraf tiruan adalah untuk kasus prediksi.

Berikut ini merupakan contoh aplikasi pemrograman matlab untuk memprediksi curah hujan menggunakan algoritma jaringan syaraf tiruan propagasi balik (backpropagation neural network).

Langkah-langkahnya yaitu:

1. Mempersiapkan data curah hujan time series untuk prediksi. Pada contoh ini digunakan data rata-rata curah hujan tiap bulan di kota Semarang pada tahun 2005 s.d 2007. Pada algoritma jaringan syaraf tiruan propagasi balik ini digunakan fungsi aktivasi sigmoid biner di mana fungsi ini bernilai antara 0 s.d 1. Namun fungsi sigmoid biner tersebut sejatinya tidak pernah mencapai angka 0 maupun 1. Oleh sebab itu, data curah hujan perlu dinormalisasi terlebih dahulu salah satu contohnya ke dalam range 0,1 s.d 0,9 menggunakan persamaan berikut ini:


di mana:
X’ = data hasil normalisasi
X = data asli/data awal
a = nilai maksimum data asli
b = nilai minimum data asli

Data curah hujan asli dan setelah dinormalisasi tampak pada gambar di bawah ini:

-read more->

Cara melakukan cropping citra secara otomatis


Dalam bidang pengolahan citra digital, segmentasi merupakan proses yang bertujuan untuk memisahkan suatu region dengan region lainnya. Pemisahan didasarkan pada perbedaan karakteristik antar region seperti perbedaan tingkat kecerahan, warna, tekstur, dll. Proses tersebut menghasilkan keluaran berupa citra biner di mana region yang telah tersegmentasi (pada umumnya disebut juga dengan foreground) akan berwarna putih atau bernilai 1. Sedangkan region lainnya (disebut juga dengan background) akan berwarna hitam atau bernilai 0.

Ada berbagai jenis metode segmentasi citra di antaranya adalah thresholding, active contour, deteksi tepi, transformasi hough, watershed, region growing, dll. Pada contoh ini ditunjukkan sebuah proses segmentasi citra dengan metode thresholding. Citra keluaran dari proses tersebut adalah citra biner yang kemudian digunakan untuk melakukan cropping dan juga perhitungan luas, keliling, dan centroid dari masing-masing objek.

Langkah-langkah pemrograman matlab untuk melakukan segmentasi citra adalah sebagai berikut:
1. Membaca citra asli

clc; clear; close all; warning off all;
originalImage = imread('doodles.jpg');
figure, imshow(originalImage);

sehingga diperoleh tampilan citra asli seperti pada gambar di bawah ini:

-read more->

Pengolahan Video untuk Mendeteksi Objek Bergerak dengan Metode Background Subtraction


Berikut ini merupakan contoh aplikasi pemrograman matlab mengenai pengolahan video untuk mendeteksi objek bergerak (object tracking) dengan metode background subtraction.
Secara garis besar langkah-langkahnya adalah:
1. Mengekstrak semua frame pada video
2. Mencari frame background secara otomatis dengan cara menghitung nilai modus pada setiap frame
3. Mengkonversi CurrentFrame dan BackgroundFrame menjadi citra grayscale
4. Mengkurangkan antara kedua frame tersebut
5. Mengkonversi citra hasil pengurangan menjadi citra biner
6. Melakukan operasi morfologi untuk menghilangkan noise
7. Menjadikan citra hasil operasi morfologi sebagai masking untuk memvisualisasikan objek yang bergerak
8. Menjalankan setiap frame hasil deteksi secara sekuensial (video)

Pada contoh ini digunakan video dengan spesifikasi sebagai berikut:

Name: ‘SampleVideo.avi’
Duration: 5.3333
Width: 360
Height: 240
FrameRate: 15.0000
BitsPerPixel: 24
VideoFormat: ‘RGB24’

Video tersebut memiliki durasi selama 5.3333 detik dan frame rate sebesar 15 frame per detik sehingga banyaknya frame ketika diekstrak adalah 5.3333 x 15 = 80 frame. Tampilan frame pada setiap detik ditunjukkan pada gambar di bawah ini:

Detik ke- Frame
0
1
2
3
4
5

-read more->

Ekualisasi Histogram pada Citra Digital


Histogram Citra merupakan diagram yang menunjukkan distribusi nilai intensitas cahaya pada suatu citra. Pada histogram, sumbu-x menyatakan nilai intensitas piksel sedangkan sumbu-y menyatakan frekuensi kemunculan piksel. Dalam bidang pengolahan citra digital, terkadang perlu dilakukan pre-processing yang merupakan proses perbaikan kualitas citra dengan tujuan untuk memudahkan manusia atau komputer untuk merepresentasikan citra. Salah satu metode perbaikan kualitas citra adalah perataan histogram atau yang sering disebut sebagai histogram equalization.

Berikut ini merupakan contoh aplikasi pemrograman matlab untuk melakukan ekualisasi histogram citra secara manual.

Langkah-langkahnya adalah:

1. Membaca citra grayscale

clc;clear;close all;

I = imread('pout.tif');
figure, imshow(I);
title('Original Image')

-read more->

Pengolahan Citra Digital untuk Deteksi Tepi Obyek


Berikut ini merupakan contoh aplikasi pemrograman matlab untuk mendeteksi objek dalam citra digital menggunakan metode deteksi tepi roberts.

Langkah-langkah pemrogramannya adalah sebagai berikut:

1. Membaca citra asli

-read more->

Pengolahan Citra Digital untuk Mendeteksi Warna dan Bentuk Obyek


Berikut ini merupakan contoh aplikasi pemrograman GUI Matlab untuk mendeteksi warna dan bentuk suatu objek pada citra digital.

Proses deteksi warna diawali dengan mengkonversi ruang warna citra RGB (Red, Green, Blue) menjadi HSV (Hue, Saturation, Value). Selanjutnya proses klasifikasi warna dilakukan berdasarkan pengelompokan nilai Hue.

Sedangkan proses deteksi bentuk diawali dengan mengkonversi ruang warna citra RGB menjadi grayscale. Setelah itu dilakukan thresholding sehingga diperoleh citra biner. Kemudian dilakukan ekstraksi ciri morfologi dari citra biner berdasarkan parameter eccentricity dan metric. Proses klasifikasi citra dilakukan berbasis aturan (rule based) sederhana.

1. Membuka tampilan GUI awal

-read more->

Algoritma k-means clustering dan Naive Bayes classifier untuk Pengenalan Pola Tesktur


K-means Clustering merupakan salah satu metode data clustering non hirarki yang berusaha mempartisi data yang ada ke dalam satu atau lebih cluster/kelompok. Metode ini mempartisi data ke dalam cluster/kelompok sehingga data yang memiliki karakteristik yang sama dikelompokkan ke dalam satu cluster yang sama dan data yang mempunyai karakteristik yang berbeda dikelompokkan ke dalam kelompok yang lain.

Sedangkan Naive Bayes Classifier merupakan salah satu metode machine learning yang memanfaatkan perhitungan probabilitas dan statistik. Metode ini dikemukakan oleh ilmuwan Inggris yaitu Thomas Bayes untuk memprediksi probabilitas di masa depan berdasarkan pengalaman di masa sebelumnya.

Berikut ini merupakan contoh aplikasi pemrograman matlab (menggunakan Matlab R2015b) mengenai pola tekstur citra menggunakan algoritma k-means clustering dan naive bayes classifier. Citra yang digunakan adalah citra tekstur Brodatz sejumlah 112 buah seperti tampak pada gambar di bawah ini:

-read more->