Background Subtraction dengan Metode Pengurangan Citra Biner


Berikut ini merupakan pemrograman matlab untuk mendeteksi kendaraan dengan metode background subtraction pengurangan citra biner:

original Track

Langkah-langkahnya adalah sebagai berikut:

No Proses Background Frame
1 Baca Citra
background

original
2 Konversi ruang warna RGB menjadi Grayscale
Background_gray

CurrentFrame_gray
3 Thresholding menggunakan metode Otsu
Background_bw

CurrentFrame_bw
4 Operasi pengurangan antara background dengan frame
Subtraction
5 Operasi dilasi menggunakan structuring element ‘square’ dengan r = 20
bw_dilate
6 Menghilangkan obyek yang menempel pada border
bw_clearborder
7 Menghilangkan obyek yang luasannya kurang dari 5000
bw_areaopen
8 Membuat masking berdasarkan hasil deteksi foreground
mask
9 Menampilkan hasil deteksi foreground pada frame
Track
10 Menampilkan cropping hasil deteksi foreground
Hasil Cropping

Source code Background Subtraction dengan Metode Pengurangan Citra Biner dapat diunduh melalui laman berikut ini: Source Code

Sedangkan tampilan source codenya adalah:

clc;
close all;
clear;

% Baca Citra Background
Background=imread('background.jpg');

% Baca Citra Current Frame
CurrentFrame=imread('original.jpg');

% Konversi Citra menjadi grayscale
Background_gray = rgb2gray(Background);
CurrentFrame_gray = rgb2gray(CurrentFrame);

% Konversi Citra menjadi biner menggunakan metode Otsu
Background_bw = im2bw(Background_gray,graythresh(Background_gray));
CurrentFrame_bw = im2bw(CurrentFrame_gray,graythresh(CurrentFrame_gray));

% Pengurangan Citra biner
Subtraction = Background_bw~=CurrentFrame_bw;

% Operasi Morfologi
bw = imdilate(Subtraction,strel('square',20));
bw = imclearborder(bw);
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);

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

  1. kak, cara menbuat video medeteksid dan menghitung mobil gimana yaa kaka

  2. Langkah-langkahnya adalah sebagai berikut:
    1. Membaca video lalu lintas mobil
    2. Melakukan segmentasi citra misalnya dengan metode Gaussian Mixture Model
    3. Melakukan tracking misalnya dengan metode Kalman Filter
    4. Menginisialisasi garis penghitung mobil pada video
    5. Menghitung mobil yang melewati garis penghitung

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: