Pola Bentuk
Bentuk merupakan salah satu ciri yang dapat diekstrak dari suatu objek untuk membedakan objek tersebut dengan objek lainnya.
Berikut ini merupakan contoh aplikasi pemrograman matlab untuk mengekstraksi ciri bentuk suatu objek dalam citra digital berdasarkan parameter luas, keliling, metric, dan eccentricity.
Luas merupakan banyaknya piksel yang menyusun suatu objek.
Sedangkan keliling merupakan banyaknya piksel yang berada pada boundary objek.
Eccentricity merupakan nilai perbandingan antara jarak foci ellips minor dengan foci ellips mayor suatu objek. Eccentricity memiliki rentang nilai antara 0 hingga 1. Objek yang berbentuk memanjang/mendekati bentuk garis lurus, nilai eccentricitynya mendekati angka 1, sedangkan objek yang berbentuk bulat/lingkaran, nilai eccentricitynya mendekati angka 0.
Sedangkan Metric merupakan nilai perbandingan antara luas dan keliling objek. Metric memiliki rentang nilai antara 0 hingga 1. Objek yang berbentuk memanjang/mendekati bentuk garis lurus, nilai metricnya mendekati angka 0, sedangkan objek yang berbentuk bulat/lingkaran, nilai metricnya mendekati angka 1.
Langkah-langkah ekstraksi ciri pola bentuk adalah sebagai berikut:
1. Membaca citra RGB
2. Mengkonversi citra RGB menjadi citra grayscale
3. Mengkonversi citra grayscale menjadi citra biner menggunakan metode thresholding Otsu
4. Menghilangkan noise dengan cara menghapus objek yang memiliki luas di bawah 30
5. Operasi morfologi yaitu closing dan filling holes
7. Menghitung luas, keliling, metric, dan eccentricity masing-masing objek
8. Mengklasifikasikan bentuk objek dengan ‘aturan if’ sederhana
Source code untuk mengekstraksi ciri bentuk suatu objek dalam citra digital adalah sebagai berikut:
% Adi Pamungkas, S.Si, M.Si % Website: https://pemrogramanmatlab.com/ % Email : adipamungkas@st.fisika.undip.ac.id clc;clear;close all; RGB = imread('pillsetc.png'); imshow(RGB); I = rgb2gray(RGB); threshold = graythresh(I); bw = im2bw(I,threshold); bw = bwareaopen(bw,30); se = strel('disk',2); bw = imclose(bw,se); bw = imfill(bw,'holes'); [B,L] = bwboundaries(bw,'noholes'); hold on for k = 1:length(B) boundary = B{k}; plot(boundary(:,2), boundary(:,1), 'w', 'LineWidth', 2) end stats = regionprops(L,'Area','Centroid','Eccentricity'); for k = 1:length(B) boundary = B{k}; delta_sq = diff(boundary).^2; perimeter = sum(sqrt(sum(delta_sq,2))); area = stats(k).Area; eccentricity = stats(k).Eccentricity; metric = 4*pi*area/perimeter^2; centroid = stats(k).Centroid; text(centroid(1),centroid(2)-16,num2str(k),'Color','r',... 'FontSize',20,'FontWeight','bold'); disp('===================================') disp(strcat(['Object number = ', num2str(k)])) disp(strcat(['Area = ',num2str(area)])) disp(strcat(['Perimeter = ',num2str(perimeter)])) disp(strcat(['Metric = ',num2str(metric)])) disp(strcat(['Eccentricity = ',num2str(eccentricity)])) if metric>0.8 text(centroid(1)-16,centroid(2)+16,'Bulat','Color','r',... 'FontSize',20,'FontWeight','bold'); else text(centroid(1)-16,centroid(2)+16,'Tidak Bulat','Color','b',... 'FontSize',20,'FontWeight','bold'); end end
File source code lengkap beserta citra pada materi di atas dapat diperoleh melalui halaman berikut ini: Source Code
Sedangkan materi lebih lanjut mengenai pengolahan citra digital untuk mendeteksi warna dan bentuk suatu objek dapat dilihat pada halaman berikut: link
Tutorial mengenai klasifikasi jenis beras berdasarkan ekstraksi ciri bentuk dapat dilihat pada video berikut ini:
Assalamualaikum mas, bisa tunjukan teori nya ?
Terima kasih
Waalaikumsalam
Bisa mas
mas, bisa bantu contoh gui perbandingan citra sidik jari untuk mengukur prosentasi keidentikan
idenya saya mau buat sp identifikasi sidik jari, ditempat saya kerja banyak perkara pemalsuan sidik jari, nah ada tantangan ke saya utk bagaimana membuat aplikasi yang mampu mengukur prosentasi keidentikan sidik jari yang di uji dengan sidik jari pembanding, tapi terus terang saja saya baru-baru aja coba pake matlab, sebelumya pake vb ato delphi, jadi kurang paham untuk matlabnya,.mohon bantuannya
Pak Rizal, untuk perancangan sistem identifikasi sidik jari yang terintegrasi dengan hardware saya rekomendasikan untuk tidak menggunakan perangkat lunak matlab
Meskipun juga support untuk proses interface, Software Matlab lebih difokuskan untuk penghitungan, simulasi, pemodelan, dan visualisasi
Untuk proses interface, banyak software lain yang lebih handal di antaranya delphi, java, dan c
Sedangkan untuk sistem identifikasi sidik jari sendiri, metode yang umumnya digunakan adalah deteksi minutiae, atau bisa juga dengan menggunakan metode filter bank gabor
Semoga dapat memberikan gambaran dalam perancangan sistem tersebut
mau tanya, apa benar untuk ekstraksi fitur kodingan gray (statistik) dan biner (morfologi) berbeda?
Benar
Utk pengenalan pola bentuk, citra yg digunakan adalah citra biner
Sedangkan utk pengenalan pola tekstur, citra yg digunakan adalah citra grayscale
Mas, untuk mengklarifikasi bentuk seperti gambar nomor 8 bisa minta sourcodenya? Soalnya yg diatas klarifikasi hanya 1 objek (persegi panjang).
Terima kasih
Klasifikasi mas
Bukan klarifikasi
Source codenya sdh saya share di atas
Coding tsb digunakan utk membedakan antara objek berbentuk bulat dg tidak bulat
Mas, mau tanya untuk kasus diatas apabila digunakan lebih dari satu image yang akan diektraksi ciri bentuknya bagaimana ya ? apakah untuk ektraksi ciri bentuk hanya eccoecentricity saja ?
kemudian hasil dari ekstraksi ciri bentuk tsb akan diklasifikasi dengan menggunakan metode machine learning seperti SVM begitu bagaimana ya ?
Terima kasih
parameter yang bisa diekstrak untuk pengenalan pola bentuk antara lain eccentricity, compactness, dan metric
materi pengenalan pola bentuk dg metode svm bisa dilihat pada laman berikut https://pemrogramanmatlab.com/data-mining-menggunakan-matlab/support-vector-machine-svm-menggunakan-matlab/
hasil dari pengujian pada koding tsb ditunjukkan oleh variabel dengan nama Group
variabel Group bisa dicek pada workspace matlab
Ok, trimakasih.. sudah bisa
salam mas adi.,.,
maaf mas, mu tanya …..
cara melakukan traning data yang berupa dataset image dengan menggunakan LVQ tekniknya gmn ya mas.,.,?
terima kasih sebelumnya….
secara umum, semua jenis jaringan syaraf tiruan ditraining dengan perintah ‘train’, yang membedakan hanya pembentukan arsitektur jaringannya saja misal perceptron menggunakan perintah ‘newp’, propagasi balik menggunakan perintah ‘newff’
assalamu’alaikum mas
mau nanya bagaimana code untuk menghitung luas, keliling dan centroid citra untuk masing-masing cluster warna citra
waalaikumsalam panut
panut bisa mengintegrasikan koding pada materi di halaman berikut ini
dan
bagaimana cara kita mengukur sisi terpanjang dari objek citra yg ingin kita deteksi bentuknya mas?
Materi mengenai hal tsb bosa dilihat pada halaman berikut ini
https://pemrogramanmatlab.com/2017/02/10/pengolahan-citra-untuk-ekstraski-ciri-objek/
Kak adi, mau tanya. Kakak pernah pake metode template matching gk?
mas adi mau tanya, bagaimana untuk automatisasi di matlab buat segmentasi citra ya mas ? apa ada refrensi untuk kasus tersebut ?
Materi mengenai segmentasi citra dapat dilihat pada halaman berikut ini
mas adi, saya mau nanya dong, cara segmentasi gambar lalu diambil bagian dari gambar itu gimana ya caranya? misanl ada gambar bunga, lalu yang diambi cm bagian kelopaknya aja mas. terima kasih mas
Materi mengenai hal tersebut dapat dilihat pada halaman berikut ini
cara cropping citra biner untuk dicocokkan dengan dataset gambar bagaimana caranya mas?
materi mengenai cropping citra dapat dilihat pada halaman berikut ini
dan
semoga ke depan terdapat materi mengenai cara melakukan otomatisasi label suatu citra dengan menggunakan SOM (self ornagizing maps), dimana label tersebut juga ditampilkan dengan SOM
min, kalau untuk pengenalan huruf karakter bisa pakai Penggabungan antara PCA dan JST-Back Propagation nggak min ? sekalian codingnya min…
bisa delsa
Kalo pengenalan pola mata kira kira bisa ga min pake cara diatas
bisa dicoba diimplementasikan analisis bentuk untuk pengenalan pola mata
Assalamualaikum, mas kalo boleh tau ini memakai metode apa ya dalam menentukan bentuk lingkarannya?
waalaikumsalam arie
identifikasi bentuk lingkaran menggunakan parameter metric
Analisis bentuk contoh nya seperti identifikasi buah tomat itu ya min? Makasih min
iya anin bisa dicoba diimplementasikan
min, mau tanya, diatas itu menggunakan metode curvelet atau bukan ? maaf masih newbie 😀
Bukan agyar
assalamuallaikum mas adi, mau tanya saya kan mau membandingkan 2 bentuk desain, desain saya buat di autodesk powerShape ultimate. nah bentuk file yang saya simpan nanti biar bisa di bandingin di matlab apa ya?
Waalaikumsalam winda
Bisa disimpan dalam bentuk citra berekstensi .jpg atau yg lain
kalau file bentuk *.pic bisa gak ya mas?
kalau file bentuk .pic dan .stl bisa gak ya mas?
bisa dicoba dulu diimplementasikan,
winda
Mas, kalo nilai luasnya mau dijumlah dari semua objek, gimana ya codingnya? Thx
untuk menjumlahkan luas semua objek bisa menggunakan perintah sum
bisa menggunakan perintah sum
mas adi maaf mau tanya, untuk klasifikasi jenis kayu pengenalan tekstur nya apa bisa pake metode ini sebelum pake jst? terima kasih
Bisa dicoba diterapkan terlebih dahulu
mas, kalau untuk program region filling (imfill) jika lokasi dan koneksinya ditentukan sendiri itu gimana ya program buat GUI nya? kalau di m.file nya saya nulisnya imfill(I,[4 4],8); I=citra format .bmp, tapi ketika program tersebut saya pindahkan ke GUI malah jadi error. mohon bantuannya mas, terima kasih.
Pada prinsipnya pengkodingan mfile dan GUI sama saja
Bisa diperiksa kembali koding yang sudah dikerjakan
punten mas mau nanya, kalo saya mencari area piksel pada gambar saya tapi malah ga muncul nilai areanya, yg muncul ini
7×1 struct array with fields: .. itu kenapa ya mas?
Struct array tersebut bisa dicoba dibuka barangkali salah satu nilai nya merupakan area
assalamu’alaikum ….
mas ada contoh pengenalan pola huruf pada matlab ya mas? sebelum nya terimakasih
Waalaikumsalam
Semoga ke depan terdapat materi mengenai pengenalan pola huruf
mas kalau untuk menentukan bentuk sidik jari bisa tidak ya mas?
bisa dicoba diimplementasikan metode pengolahan citra untuk menentukan bentuk sidik jari
mas bisa bagi informasi soal langkah2 kerja fuzzy dan jaringan syaraf tiruan untuk pengenalan pola suatu objek
semoga ke depan terdapat materi mengenai langkah2 kerja fuzzy dan jaringan syaraf tiruan untuk pengenalan pola suatu objek
ada yang membaca citra alphabet mengenal jenis hruf mas adi
Semoga ke depan terdapat materi mengenai pengenalan huruf alfabet
kak cara hitung metric dan ecentricity secara manualnya gimana ya?
materi mengenai metric dan eccentricity bisa dipelajari melalui halaman berikut
Mas mau tanya, kenapa ya regionprops di matlab saya eror, katanya loadLibrary can’t reload. Terima kasih mohon bantuan nya 🙏
Source code lengkap bisa dibeli di tokopedia sehingga bisa langsung dirunning tidak error dan bisa dikembangkan
mas kalau mau membuat tentang pengenalan angka bagaimana ya?
Assalamualaikum kak
Untuk membedakan ukuran buah kecil dengan besar menggunakan ektraksi ciri apa ya kak?
Waalaikumsalam Wr. Wb.
Bisa menggunakan ekstraksi ciri ukuran dengan parameter luas dan keliling
assalamualaikum mas
saya mau tanya, bagaimana cara menghitung jumlah objek yang bulat dan jumlah objek yang tidak bulat? mohon bantuannya mas untuk tuhas akhir saya🙏🏻
Waalaikumsalam
Bisa dilakukan labelling terlebih dahulu