Cara Menghitung Luas , Keliling , dan Centroid suatu Citra


Proses pengenalan objek dalam citra umumnya membutuhkan suatu ciri yang dapat membedakan antara objek yang satu dengan objek lainnya. Ciri yang dapat diekstrak antara lain adalah ciri ukuran (luas dan keliling) dan posisi (koordinat centroid) dari suatu objek.

Berikut ini merupakan contoh pemrograman matlab untuk menghitung centroid, luas, dan keliling objek dalam suatu citra grayscale. Centroid merupakan koordinat titik tengah dari suatu objek. Luas merupakan banyaknya piksel yang menyusun suatu objek. Sedangkan keliling merupakan banyaknya piksel yang berada pada boundary objek. Hasil penghitungan geometris tersebut dapat digunakan sebagai ciri masukan dalam tahapan pengenalan pola morfologi/ bentuk.

Langkah-langkah pemrograman untuk menghitung luas, keliling, dan centroid suatu citra adalah sebagai berikut:
1. Membaca dan menampilkan citra grayscale

2. Mengkonversi citra grayscale menjadi citra biner

3. Melakukan operasi morfologi ‘filling holes’

4. Menentukan centroid dan boundary objek

5. Menampilkan koordinat centroid masing-masing objek

6. Labelling objek

7. Menghitung luas masing-masing objek (Area)

8. Menghitung keliling masing-masing objek (Perimeter)

9. Menampilkan semua hasil penghitungan

Source code dan citra pada pemrograman di atas dapat diperoleh melalui halaman berikut ini: Source Code

Sedangkan tampilan source codenya adalah:

clc;clear;close all;
I = imread('coins.png');
figure, imshow(I)
bw = im2bw(I, graythresh(I));
bw2 = imfill(bw,'holes');

s = regionprops(bw2, 'centroid','area','perimeter');
centroids = cat(1, s.Centroid);
area = cat(1, s.Area);
perimeter = cat(1, s.Perimeter);
hold on
plot(centroids(:,1), centroids(:,2), 'r*')

[B,L] = bwboundaries(bw2,'noholes');
[~,num] = bwlabel(bw2,8);

for k = 1:num
    boundary = B{k};
    plot(boundary(:,2), boundary(:,1), 'y', 'LineWidth', 2)
    text(boundary(1,2),boundary(1,1)-7,strcat(['Label = ',num2str(k)]),'Color','r',...
        'FontSize',10,'FontWeight','bold');
    text(boundary(1,2),boundary(1,1),strcat(['Area = ',num2str(area(k))]),'Color','b',...
        'FontSize',10,'FontWeight','bold');
    text(boundary(1,2),boundary(1,1)+7,strcat(['Perim = ',num2str(perimeter(k))]),'Color','g',...
        'FontSize',10,'FontWeight','bold');
    text(boundary(1,2),boundary(1,1)+14,strcat(['X = ',num2str(centroids(k,1))]),'Color','c',...
        'FontSize',10,'FontWeight','bold');
    text(boundary(1,2),boundary(1,1)+21,strcat(['Y = ',num2str(centroids(k,2))]),'Color','c',...
        'FontSize',10,'FontWeight','bold');
end

Save

Save

Save

Posted on September 10, 2015, in Pengolahan Citra and tagged , , , , , , , , , , , , , , , , , , , , , , , , . Bookmark the permalink. 33 Comments.

  1. maaf, bagaimanakah caranya agar saya bisa menampilkan koordinat posisi masing-masing koin?

  2. kak, ada nggak source code cara hitung luas dan kelilingnya?

  3. gan, kalau menghitung diameter objek telur algoritma apa yang bagus dipakai ?

  4. Kalau boleh minta email dong gan . makasi

  5. ini menggunakan matlab versi brp y mas? bisa digunakan di matlab R2013a gk?

  6. mas adi, saya mau nanya. kalau untuk menghitung panjang dan lebar obejct caranya gmn ya? contohnya beras. mksh

  7. maksud saya menghitung ukuran objek, misalnya beras, tp dalam panjang dan lebarnya. bagaimana ya mas?

  8. kalo mencari titik tengah sebgai titik acuan(set point) dari suatu objek pada gambar untuk sistem kendali gimana ya?

  9. contohnya yg postingannya diatas ya mas?

  10. mas kalau mau membedakan berbagai bentuk bagaimana ya?

  11. mas kalau mau menghitung diameter gimana ya mas?

  12. gan ini luas areanya dalam satuan apa ya? piksel kah?

  13. menampilkann secara bertahap gmana kak?

  14. punya saya cuman nampilin hasil akhirnya kak, gak ada dari awal

  15. maaf mas, kalau menghitung luas objek citra dari segmentasi deteksi tepi bagaimana ya?

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 )

Google+ photo

You are commenting using your Google+ 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 )

w

Connecting to %s

%d bloggers like this: