Batch Processing Dengan Matlab

download Batch Processing Dengan Matlab

of 2

description

matlab

Transcript of Batch Processing Dengan Matlab

  • Batch Processing dengan matlab

    Pendahuluan Menjawab salah satu pertanyaan dari teman-teman pembaca situs ini, yaitu bagaimana cara memprosesbanyak citra secara otomatis dengan menggunakan matlab? maka pada kesempatan kali ini, kita akan membahassecara singkat bagaimana cara melakukannya. Kebetulan di dalam pekerjaan sehari-hari, batch processing merupakanhal yang sering dilakukan, jadi aku bisa buatkan tutorialnya dengan cepat. Apa itu batch processing Misalkan kitamemiliki suatu fungsi f(x). Katakanlah fungsi tersebut adalah edge detector. Di matlab, kita bisa membaca berkas citradengan menggunakan perintah imread (baca tutorial: Membaca dan menulis citra pada Matlab). Tetapi, akan menjadipekerjaan yang sangat membuang waktu ketika kita harus melakukannya pada 100 atau 1000 berkas citra. Batchprocessing adalah suatu proses yang mengautomasi pekerjaan ini. Dalam matlab, proses ini tidak disediakan dalam satuperintah, alias kita harus membuatnya sendiri. Langkah-langkah Langkah-langkah dalam batch processing adalahsebagai berikut: - Mendapatkan list nama-nama berkas citra yang akan di proses - Membaca salah satu nama berkas citra dari list yang telah didapatkan - Memproses f(x) pada citra yang sudah dibaca - Kembali ke langkah kedua hingga semua nama berkas citra yang ada di list telah diproses. Mendapatkan listnama berkas citra Cara mendapatkan list nama berkas citra pada matlab itu mudah sekali!. Caranya adalah denganmenggunakan perintah ls. Perhatikan pada potongan kode dibawah ini. 1: listNamaCitra = ls('*.jpg');

    variable listNamaCitra akan menjadi array of string dari nama-nama berkas citra yang berekstensi .jpg. Perintah *.jpg,dapat diubah sesuai dengan kebutuhan. Satu catatan penting di sini adalah, sebenarnya bentuk listNamaCitra adalahsebuah matriks 2 dimensi yang memiliki ordo nxm dimana n adalah banyaknya berkas citra, dan m adalah jumlahkarakter dari string terpanjang dalam list. Membaca salah satu nama berkas citra

    Yang ini cukup mudah. Namun ada beberapa tips dan trik yang mungkin dapat menyelamatkan kita dari hal-hal yangmenyebalkan. Baik, berhubung m pada listNamaCitra mengikuti jumlah karakter pada string terpanjang, maka adakemungkinan matlab menambahkan karakter kosong pada nama-nama citra yang pendek (cth: 'citra1.jpg '). Jika kitalangsung memberikan nama ini kedalam imread, dapat dipastikan matlab akan mengeluarkan error dengan komentarberkas citra tidak ditemukan. Nah! untuk menyelesaikan masalah ini, kita bisa memakai fungsi strtrim.

    Perhatikan potongan kode dibawah ini

    1: namaCitra = strtrim(listNamaCitra(1,:)); 2: citra1 = imread(namaCitra);

    Potongan kode di atas akan membaca nama berkas citra yang pertama dari list.

    Untuk langkah ketiga dan keempat, tampaknya cukup mudah. Jadi tidak akan dijelaskan lebih lanjut. Kode secara keseluruhan

    Berikut ini adalah kode secara keseluruhan

    1: % Batch processing pada Matlab

    2: % PengolahanCitra.com *2008*

    3:

    4: listNamaCitra = ls('*.jpg'); 5: for x = 1:size(listNamaCitra,1)

    Situs Pengolahan Citra | Digital Image Processing

    http://pengolahancitra.com Powered by Joomla! Generated: 23 February, 2016, 07:50

  • 6: namaCitra = strtrim(listNamaCitra(x,:)); 7: citra = imread(namaCitra); 8: citraHasil = FungsiDeteksiSisi(citra); % Silahkan ganti fungsideteksisisinya 9: imwrite(citraHasil, strcat(namaCitra,'-hasil.jpg')); 10: end

    Penutup

    Kita sudah membahas mengenai batch processing dalam Matlab. Proses ini tidak disediakan dalam suatu fungsi diMatlab, maka dari itu kita harus membuatnya sendiri. Langkah-langkah dari proses ini sendiri cukup mudah. Namundemikian ada beberapa tips dan trik yang harus diperhatikan agar kita terhindar dari error-error yang menyebalkan.

    Pertanyaan lebih lanjut bisa langsung dilayangkan di bagian comment di bawah tutorial ini.

    Situs Pengolahan Citra | Digital Image Processing

    http://pengolahancitra.com Powered by Joomla! Generated: 23 February, 2016, 07:50