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 pemrograman matlab untuk melakukan proses segmentasi  dan analisis citra. Langkah-langkah nya yaitu:
1. Membaca dan menampilkan citra asli. 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

2. Melakukan segmentasi dengan metode deteksi tepi. Deteksi tepi dilakukan melalui operasi konvolusi dengan operator selisih terpusat

% Konvolusi dengan operator selisih terpusat
I = double(rgb2gray(Img));
d1x = [-1 0 1];
d1y = [-1;0;1];
Ix = conv2(I,d1x,'same');
Iy = conv2(I,d1y,'same');
J = sqrt((Ix.^2)+(Iy.^2));
figure, imshow(J,[]);

hasil deteksi tepi yaitu

3. Melakukan operasi thresholding sehingga diperoleh citra biner yang merepresentasikan luasan dari objek. Luas objek kemudian dihitung dengan cara menjumlahkan seluruh angka 1 (piksel berwarna putih) pada citra biner yang diperoleh. Luas objek dihitung dalam satuan piksel.

K = J>10;
L = imclearborder(K);
M = imfill(L,'holes');
N = bwareaopen(M,100);
figure, imshow(N);
area = sum(sum(N))

diperoleh citra biner sebagai berikut

luas objek yang diperoleh adalah

4. Melakukan operasi morfologi untuk mendapatkan boundaries dari citra biner. Kemudian dilakukan penghitungan keliling objek dengan cara menjumlahkan seluruh angka 1 (piksel berwarna putih) pada citra biner yang diperoleh. Keliling objek dihitung dalam satuan piksel.

O = bwmorph(N,'remove');
figure, imshow(O);
perimeter = sum(sum(O))

sehingga didapatkan citra biner sebagai berikut

keliling objek yang diperoleh adalah

5. Menampilkan boundaries objek pada citra asli

% Membuat Boundaries
[B,L] = bwboundaries(N,'noholes');
figure,imshow(Img)
hold on
for k = 1:length(B)
boundary = B{k};
plot(boundary(:,2), boundary(:,1), 'y', 'LineWidth', 2)
end

dihasilkan tampilan seperti pada gambar berikut

6. Menampilkan bounding box pada citra asli

% Membuat Bounding Box
[row,col] = find(N==1);
 
[a,b] = size(N);
mask = false(a,b);
mask(min(row):max(row),min(col):max(col)) = 1;

mask =  bwperim(mask,8);
mask = imdilate(mask,strel('square',4));

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

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

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

Tampilan citra yang dihasilkan adalah

7. Melakukan cropping hasil segmentasi

% Melakukan cropping hasil segmentasi
crop = imcrop(Img,[min(col) min(row) max(col)-min(col) max(row)-min(row)]);
figure, imshow(crop);

Hasil proses cropping adalah

Source code dan citra pada pemrograman di atas dapat diunduh pada laman berikut ini: Source Code

Posted on October 18, 2016, in Pengenalan Matlab, Pengolahan Citra and tagged , , , , , , , , , . Bookmark the permalink. 2 Comments.

  1. mau nanya kalau mencari nilai skewness, kurtosis dan entrophy dari data ini apakah diperlukan proses pencarian luas dan keliling? atau langsung cari nilai skewness, kurtosis dan entrophy nya?
    terima kasih

    • Skewness, kurtosis dan entrophy merupakan parameter yang diekstrak dari ciri tekstur. Nilai tersebut diperoleh dari citra grayscale. Sedangkan luas dan keliling diekstrak dari ciri morfologi yang diperoleh dari citra biner

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: