Perhitungan karakter
Perhitungan karakter ini cukup penting ketika kita berurusan dengan projek untuk mengklasifikasikan karakter yang terdapat dalam citra. Sebagai mana contoh ; mengartikan tulisan yang ada di dalam citra hasil scan. Dengan menghitung jumlah karakter yang ada di dalamnya, dan dengan program ini maka prosesnya akan menjadi otomatis tidak lagi hitung manual. kali ini saya mencoba dengan gambar dan isi gambar tersebut berisi karakter yang saya buat.Langkah - Langkah Penjelasannya :
- Membaca citra digital
- Cek apakah citra berupa RGB atau grayscale atau biner. Jika citra dalam bentuk RGB atau Grayscale maka kita jadikan biner terlebih dahulu.
- Mencari centroid atau titik massa untuk tiap objek.
- Untuk tiap centroid yang ditemukan, kita berikan kotak yang menandakan bahwa dia telah terklasifikasi.
- Output
Berikut adalah Programnya :
clear all
clc;
filename='Budianto.png';
I=imread(filename);
[bar,kol,z]=size(I);
if z==3
bw=im2bw(I,.5);
else
bw=I;
end
bw=~bw;
bw=bwconncomp(bw,4);
bw=labelmatrix(bw);
stats=regionprops(bw,{'centroid','boundingbox'});
imshow(I);
title('INILAH HASILNYA.. ^-^','fontsize',14);
hold on;
for k=1:length(stats);
cent=stats(k).Centroid;
boks=stats(k).BoundingBox;
plot(cent(1),cent(2),'bo','MarkerSize',5,'MarkerFaceColor','g');
bx=[boks(1),boks(1),boks(1)+boks(3),boks(1)+boks(3),boks(1)];
by=[boks(2)+boks(4),boks(2),boks(2),boks(2)+boks(4),boks(2)+boks(4)];
line(bx,by,'color','r');
pause(.01);
end
xlabel(sprintf('There is %d characters detection counted',length(stats)));
hold off;
Penjelasan Program :
- Untuk membaca citra digital //
filename='font4.png';
I=imread(filename);
- Jika citra dalam bentuk RGB atau Grayscale maka kita jadikan biner//
[bar,kol,z]=size(I);
if z==3
bw=im2bw(I,.5);
else
bw=I;
end
bw=~bw;
- Untuk mencari centroid atau titik massa (proses) //
bw=bwconncomp(bw,4);
bw=labelmatrix(bw);
stats=regionprops(bw,{'centroid','boundingbox'});
- Untuk menampilkan gambar hasil//
imshow(I);
title('How to count characters in
an image','fontsize',14);
hold on;
- Untuk proses perhitungan dengan menghitung centroid yang ada//
for k=1:length(stats);
cent=stats(k).Centroid;
boks=stats(k).BoundingBox;
plot(cent(1),cent(2),'bo','MarkerSize',5,'MarkerFaceColor','g');
bx=[boks(1),boks(1),boks(1)+boks(3),boks(1)+boks(3),boks(1)];
by=[boks(2)+boks(4),boks(2),boks(2),boks(2)+boks(4),boks(2)+boks(4)];
line(bx,by,'color','r');
pause(.01);
end
- untuk menampilkan gambar hasil//
xlabel(sprintf('There
is %d characters counted',length(stats)));
hold off;
Ini adalah gambar sebelum di proses : (Gambarnya bisa file ektensi apa saja ; jpg,png,bmp,, saya memakai png) ::
Hasilnya setelah di jalankan ::
Terima kasih
Salam
Budianto
kok error:
BalasHapusUndefined function or method 'bwconncomp' for input arguments of type 'double'.