Background Subtraction dengan Metode Pengurangan Citra Biner


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

Langkah-langkahnya adalah sebagai berikut:

No Proses Background Frame
1 Baca Citra
2 Konversi ruang warna RGB menjadi Grayscale
3 Thresholding menggunakan metode Otsu
4 Operasi pengurangan antara background dengan frame
5 Operasi dilasi menggunakan structuring element ‘square’ dengan r = 20
6 Menghilangkan obyek yang menempel pada border
7 Menghilangkan obyek yang luasannya kurang dari 5000
8 Membuat masking berdasarkan hasil deteksi foreground
9 Menampilkan hasil deteksi foreground pada frame
10 Menampilkan cropping hasil deteksi foreground

File source code lengkap beserta citra untuk deteksi kendaraan dengan metode Background Subtraction Pengurangan Citra Biner dapat diperoleh melalui halaman 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 )

Facebook photo

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

Connecting to %s

%d bloggers like this: