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 aplikasi 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
7. Menghitung luas masing-masing objek (Area)
8. Menghitung keliling masing-masing objek (Perimeter)
9. Menampilkan semua hasil penghitungan
File source code lengkap beserta 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
Posted on September 10, 2015, in Pengolahan Citra and tagged aplikasi pengolahan citra dengan matlab, aplikasi pengolahan citra digital menggunakan matlab, aplikasi pengolahan citra menggunakan matlab, cara menghitung centroid objek pada citra digital matlab, cara menghitung luas objek pada citra digital matlab, citra biner, citra grayscale, citra RGB, contoh pengolahan citra digital matlab, contoh program matlab, contoh program matlab pengolahan citra, contoh program matlab sederhana, image processing, labelling an image, labelling citra, menentukan centroid citra, menentukan keliling citra, menentukan luas citra, operasi morfologi, Pengolahan Citra Digital, pengolahan citra digital dan aplikasinya menggunakan matlab, pengolahan citra digital menggunakan matlab, segmentasi citra dengan matlab, segmentasi citra matlab, source code matlab pengolahan citra. Bookmark the permalink. 50 Comments.
maaf, bagaimanakah caranya agar saya bisa menampilkan koordinat posisi masing-masing koin?
centroid pada materi di atas merupakan koordinat posisi masing-masing koin
kak, ada nggak source code cara hitung luas dan kelilingnya?
Source code di atas salah satunya adalah menghitung luas (area) dan keliling (perimeter)
gan, kalau menghitung diameter objek telur algoritma apa yang bagus dipakai ?
bisa menggunakan metode segmentasi thresholding, bisa juga menggunakan segmentasi warna
bagaimana cara menggunakan metode segmentasi thresholding gan, mohon pencerahannya untuk tugas akhir saya.
materi mengenai thresholding dapat dilihat pada
https://pemrogramanmatlab.com/2017/07/25/thresholding_citra/
https://pemrogramanmatlab.com/pengolahan-citra-digital/segmentasi-citra/thresholding-menggunakan-matlab/
https://pemrogramanmatlab.com/2016/10/29/segmentasi-citra-dengan-metode-multi-thresholding-dan-k-means-clustering/
itu kan cuma source codenya gan, langkah sama hasilnya gimana ? ada gak video tutorialnya untuk mengukur diamater objek. makasi gan
Kalau boleh minta email dong gan . makasi
ini menggunakan matlab versi brp y mas? bisa digunakan di matlab R2013a gk?
matlab yg digunakan adalah matlab versi R2015b
mas adi, saya mau nanya. kalau untuk menghitung panjang dan lebar obejct caranya gmn ya? contohnya beras. mksh
materi untuk menghitung jarak dalam suatu citra dapat dipelajari pada halaman berikut ini
https://pemrogramanmatlab.com/2015/10/22/cara-mengukur-jarak-antara-dua-objek-dalam-citra/
maksud saya menghitung ukuran objek, misalnya beras, tp dalam panjang dan lebarnya. bagaimana ya mas?
sama saja patraniagabyl, panjang dan lebar merupakan besaran jarak
materi tsb bisa diimplementasikan
kalo mencari titik tengah sebgai titik acuan(set point) dari suatu objek pada gambar untuk sistem kendali gimana ya?
Untuk mencari titik tengah atau centroid dapat dilakukan dengan cara menghitung nilai rata-rata koordinat x dan y
contohnya yg postingannya diatas ya mas?
Iya betul triza
mas kalau mau membedakan berbagai bentuk bagaimana ya?
materi mengenai identifikasi bentuk dapat dilihat pada halaman berikut ini
https://pemrogramanmatlab.com/2017/07/26/mendeteksi-objek-yang-berbentuk-lingkaran/
dan
https://pemrogramanmatlab.com/2016/07/02/pengolahan-citra-digital-untuk-mendeteksi-warna-dan-bentuk-obyek/
mas kalau mau menghitung diameter gimana ya mas?
diameter bisa dihitung menggunakan rumus akar dari (4*luas/pi)
gan ini luas areanya dalam satuan apa ya? piksel kah?
betul reza
menampilkann secara bertahap gmana kak?
Materi di atas sdh ditampilkan secara bertahap
punya saya cuman nampilin hasil akhirnya kak, gak ada dari awal
maaf mas, kalau menghitung luas objek citra dari segmentasi deteksi tepi bagaimana ya?
Pada prinsipnya sama yang dihitung adalah jumlah piksel yang menyusun objek hasil segmentasi
maaf mas nanya lagi, adakah tutorial atau source code yang mendekati untuk menghitung hasil dari deteksi tepi?
materi mengenai deteksi tepi bisa dilihat pada halaman berikut ini
https://pemrogramanmatlab.com/pengolahan-citra-digital/segmentasi-citra/deteksi-tepi/
Mas, kalau objeknya bertumpuk itu bagaimana?
Jika objeknya bertumpuk maka bisa dipisahkan menggunakan operasi morfologi seperti opening dan erosi
Materi mengenai operasi morfologi dapat dilihat pada halaman berikut ini
https://pemrogramanmatlab.com/pengolahan-citra-digital/operasi-morfologi-citra/
saya pakai metode distance transform untuk mensegmentasi objek yang bertumpuk, kalau pelabelannya itu bagaimana yah mas. Terima kasih sebelumnya
Baik jika utk menggunakan metode yg lain juga tidak apa2
Utk pelabelan bisa menggunakan perintah bwlabel
kalau mau hitung luas yg bentuknya abstrak bagusnya pakai metode apa mas?
Luas bisa diperoleh dengan cara menghitung jumlah piksel yang menyusun objek
Mas mau nanya untuk menghitung luasan yang bentuknya tidak beraturan (abstract) apakah bisa menggunakan source code diatas? Terima kasih sebelumnya
source code di atas dapat digunakan untuk menghitung luasan objek yang bentuknya tidak beraturan
apakah bisa menghitung luas persegi panjang?
Source code di atas dapat digunakan untuk menghitung luasan objek berbagai bentuk termasuk persegi panjang
asslamualaikum mas, saya mau tanya bagaimana cara membandingkan tinggi dan lebar objek dalam bentuk piksel dengan objek sebenarnya?, mohon bantuannya mas
. terimakasih
Mas mau nanya, bagaimana cara menghitung jarak perpindahan objek pada video dari satu posisi ke posisi lainya? terimakasih sebelumnya mas
Bisa dilakukan dengan menghitung perpindahan centroid objek pada frame ke-i dengan frame ke-i+1
maaf mas adi mau nanya lagi, kalau boleh tau contoh code yang bagian menghitung perpindahan centroid objek pada frame ke-i dengan frame ke-i+1 itu gimana ya mas?
Bisa menggunakan perintah for
mas, apakah untuk penghitungan diatas bisa menggukan bhasa php ya?
maaf mas mau bertanya, jika dari area yang sudah diketahui kan masih berupa satuan pixel, bagaimana jika kita ingin menetahui area koin tersebut dalam satuan milimeter?