Background Subtraction dengan Metode Pengurangan Citra Grayscale


Deteksi kendaraan adalah salah satu tahapan yang harus dilakukan dalam proses identifikasi kendaraan. Contoh pemrograman matlab untuk deteksi kendaraan dengan metode background subtraction pengurangan citra grayscale adalah sebagai berikut:

original Track

Langkah-langkahnya yaitu:

No Proses Background Frame
1 Baca Citra  background  original
2 Konversi ruang warna RGB menjadi Grayscale  Background_gray  CurrentFrame_gray
3 Operasi pengurangan antara background dengan frame  Pengurangan CItra Grayscale
4 Thresholding dengan metode Otsu  Citra Biner Otsu
5 Operasi filling holes  Filling Holes
6 Menghilangkan obyek yang luasannya kurang dari 5000  bw areaopen
7 Membuat masking berdasarkan hasil deteksi foreground  mask
8 Menampilkan hasil deteksi foreground pada frame  Track
9 Menampilkan cropping hasil deteksi foreground  Hasil Cropping

Source code Matlab untuk deteksi kendaraan dengan metode background subtraction pengurangan citra grayscale dapat diunduh melalui laman berikut ini: Source Code

Sedangkan tampilan source codenya adalah:

clc;
close all;
clear;

% Membaca citra background
Background=imread('background.jpg');

% Membaca citra current frame
CurrentFrame=imread('original.jpg');

% Mengkonversi citra menjadi grayscale
Background_gray = rgb2gray(Background);
CurrentFrame_gray = rgb2gray(CurrentFrame);

% Pengurangan citra grayscale
Subtraction = (double(Background_gray)-double(CurrentFrame_gray));
Min_S = min(Subtraction(:));
Max_S = max(Subtraction(:));
Subtraction = ((Subtraction-Min_S)/(Max_S-Min_S))*255;
Subtraction = uint8(Subtraction);

% Mengkonversi citra menjadi biner menggunakan metode Otsu
Subtraction = ~im2bw(Subtraction,graythresh(Subtraction));

% Operasi Morfologi
bw = imfill(Subtraction,'holes');
bw = bwareaopen(bw,5000);

% Pembuatan masking dan proses cropping
[row,col] = find(bw==1);
h_bw = imcrop(CurrentFrame,[min(col) min(row) max(col)-min(col) max(row)-min(row)]);

[a,b] = size(bw);
mask = false(a,b);
mask(min(row):max(row),min(col):max(col)) = 1;
mask =  bwperim(mask,8);
mask = imdilate(mask,strel('square',3));

R = CurrentFrame(:,:,1);
G = CurrentFrame(:,:,2);
B = CurrentFrame(:,:,3);

R(mask) = 255;
G(mask) = 0;
B(mask) = 0;

RGB = cat(3,R,G,B);
figure, imshow(RGB);

Save

Posted on February 9, 2016, in Pengenalan Pola, Pengolahan Citra, Pengolahan Video and tagged , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , . Bookmark the permalink. 16 Comments.

  1. mas punya refrensi mendeteksi objek tangan ga?
    trims sblmnya..

  2. Mas punya referensi perhitungan kecepatan kendaraan dengan matlab ? Trimakasih sblmnya..

  3. Misi.. mas punya referensi untuk perhitungan kecepatan kendaraan menggunkan matlab gak? Trimakasih sblmnya..

    • Algoritmanya:
      1. Tetapkan lintasan kendaraan (pada video) yang nantinya digunakan untuk menghitung kecepatan kendaraan
      2. Hitung panjang lintasan kendaraan pada video dalam satuan piksel
      3. Konversikan satuan panjang lintasan tsb menjadi meter dengan cara membaginya dengan resolusi spasial
      4. Hitung waktu yang dibutuhkan kendaraan untuk melintasi lintasan (pada video) dengan cara membagi banyak frame kendaraan pada lintasan dengan frame rate video
      5. Hitung kecepatan kendaraan dengan cara membagi panjang lintasan kendaraan (dalam satuan meter) dengan waktu tempuh (dalam satuan detik)

  4. Misi mas, Sy kesulitan dalm membuat lintasan di file videonya. Apa ada referensinya? Trimakasih seblmnya.

  5. mas jadi gini, sy lg ada project tugas akhir tentang Traffic light otomatis berdasar kepadatan jalan raya.
    jadi kepengen nya saya, proses pengambilan gambar citra jalan raya itu saat counter traffic light 5 detik terakhir lampu merah.
    bisa bantu saya code nya ga ya mas? makasih

  6. mas, untuk penghitungan gmn? kayak mobil dari atas ke bawah +1 kalau dari bawah ke atas -1 itu code-nya gmn?

  7. mas kalau kalau identifikasi sebuah objek menggunakan canny bisa ?

  8. mas untuk menngunkan foto sebagai latar belakang pada toolls AXES bagaimana?

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: