Archive for November, 2009

HISTOGRAM

Masih berhubungan nih dengan tulisan sebelumnya yang berjudul ‘mengkonversi image menjadi matrik’,,, pada kesempatan ini penulis akan coba menjelaskan tentang cara menampilkan histogram dari suatu gambar dan tentunya dengan bantuan program MATLAB.

Seperti yang kita ketahui sebelumnya, bahwa dari sekian banyaknya warna yang ada dalam suatu gambar itu terdiri atau terbentuk dari perpaduan tiga warna dasar yaitu merah, hijau, dan biru atau yang lebih dikenal dengan sebutan ‘RGB’. Histogram suatu gambar ini bertujuan untuk menampilkan tingkat masing-masing RGB dari suatu gambar…

Inilah gambar yang akan kita gunakan :

Berikut adalah sintax yang digunakan untuk menampilkan histogram suatu gambar:

>> gambar = imread ( ‘sonic.jpg’ );
>> red = gambar ( : , : , 1 );
>> green = gambar ( : , : , 2 );
>> warna merah
>> blue = gambar ( : , : , 3 );
>> merahgray2 = 0.3 * red + 0.5 * green + 0.2 * blue ;
>> imhist (red)
>> imhist (green)
>> imhist (blue)
>> imhist (gray)

Sintax imread digunakan untuk membaca file gambar yang akan kita gunakan,

‘red = gambar ( : , : , 1 );’
Merupakan sintax yang digunakan untuk memanggil matrik gambar yang hanya berisipixel warna merah. Begitu juga dengan dua perintah dibawahnya yang digunakan untuk memanggil matrik yang hanya berisikan pixel warna hijau dan biru.

Sedangkan sintax,
‘merahgray2 = 0.3 * red + 0.5 * green + 0.2 * blue ;’
Digunakan untuk mendapatkan matrik yang berisikan pixel warna abu-abu. Tidak seperti tiga warna sebelumnya yang bisa dipanggil hanya dengan menentukan posisi warna yang diinginkan, untuk memanggil matrik yang berisikan pixel abu-abu ini diperlukan beberapa langkah yaitu ‘0.3 * red + 0.5 * green + 0.2 * blue’, hal ini dilakukan  karena warna abu-abu ini merupakan perpaduan dari tiga warna dasar tersebut.

Dan untuk menampilkan gambar histogram dari masing-masing warna menggunakan perintah
‘imhist(warna)’

Berikut adalah hasil yang didapatkan setelah kita memasukan sintax diatas ke dalam program MATLAB:
imhist_red

Gambar ini menampilkan matrik dengan pixel warna MERAH.

imhist_green

Yang ini menampilkan matrik dengan pixel warna HIJAU.

imhist_blue

Yang ini menampilkan matrik dengan pixel warna BIRU.

imhist_grey

Sedangkan yang ini menampilkan matrik dengan pixel warna ABU-ABU.

Gimana ??? Mudah kan ??? Silahkan dicoba sendiri ya… ^_^

merubah gambar menjadi matriks dengan matlab

Citra digital merupakan suatu larik dua dimensi atau suatu matriks yang elemen-elemennya menyatakan tingkat keabuan dari elemen gambar. Jadi informasi yang terkandung bersifat diskret. Citra digital tidak selalu merupakan hasil langsung data rekaman suatu sistem. Kadang-kadang hasil rekaman data bersifat kontinu seperti gambar pada monitor televisi, foto sinar-X, dan lain sebagainya. Dengan demikian untuk mendapatkan suatu citra digital diperlukan suatu proses konversi, sehingga citra tersebut selanjutnya dapat diproses dengan komputer.

Pada tulisan kali ini, penulis akan menjelaskan cara menampilkan sebuah citra atau image sebagai matriks menggunakan Matlab. Sebagai contoh penulis akan menggunakan sebuah gambar dengan format jpg.

Image kuda  diatas berukuran 130 x 119 yang berarti image tersebut terdiri dari 130 kolom dan 119 baris pixel. Jadi total keseluruhan image tersebut terdiri dari 15470 pixel, dan tiap pixel tersebut merupakan perpaduan dari 3 warna utama yaitu: Red, Green, Blue yang lebih dikenal dengan istilah RGB.

Untuk menampilkan image tersebut sebagai matriks pada matlab tidaklah sulit, berikut adalah sintaks yang digunakan untuk menampilkan image tersebut sebagai matriks.

>> c=imread(‘kuda.jpg’,’jpg’);
>> asci=uint8(c)

Fungsi imread() digunakan untuk membaca image yang ada pada komputer kita, image kucing itu pun harus sudah ada pada folder work didalam matlab.

C:\Program Files\MATLAB71\work

Fungsi uint8() digunakan untuk mengubah string menjadi bilangan integer.

red

asci(:,:,1) Menandakan bahwa matriks yang ditampilkan adalah komposisi warna lapis pertama atau Red, dan seterusnya diikuti matriks lapis kedua dan ketiga.

green

Matriks Green

blue

Matriks Blue

mat lab

Biasanya, ada 4 (empat) proses yang harus dilakukan dalam akusisi data melalui Kartu suara (soundcard) menggunakan MATLAB:

  1. Inisialisasi, membuat objek device;
  2. Konfigurasi, menambahkan kanal serta mengatur cara akuisisi;
  3. Eksekusi, memulai (mengaktifkan) objek device dan akuisisi atau mengirim data;
  4. Terminasi, menghapus objekdevice.

Untukmemverifikasi frekuensi dasar sebuah garputala adalah 440Hz, sebuah nada akan diakuisisi dan analisis menggunakan MATLAB. Ini adalah contoh proses yang akan dijelaskan berikut ini.

Dalam contoh ini, kita akan memverifikasi frekuensi dasar (fundamental) sebuah garputala adalah 440Hz. Untuk melakukan hal ini, akan kita gunakan sebuah mikrofon dan sebuah kartu suara untuk memperolah data-data suara. Berikutnya, akan dilakukan proses FFT dari data yang diperoleh untuk menemukan komponen frekuensi sebuah garputala.

akuisisi data suara menggunakan kartu suara

 

Kita awala dengan mengambil data suara selama 2 detik melalui kanal di kartu suara. Karena garputala bergetar dengan frekuensi nominal 440Hz, frekuensi pencuplikan kartu suara bisa diatur paling rendah yaitu 8000Hz.

Setelah kita getarkan garputala dan kita letakkan dengan dengan mikrofon, akan kita lakukan akusisi data. Berikut penjelasan dari masing-masing langkah yang telah disebutkan sebelumnya…

 

Inisialisasi

Langkah pertama adalah membuat objek masukan analog untuk kartu suara:

AI = analoginput('winsound');

Konfigurasi

Selanjutnya, kita tambahkan sebuah kanal tunggal ke AI, dan atur frekuensi cupliknya 8000Hz dengan durasi akuisisi 2 detik:

addchannel(AI, 1);
Fs = 8000;              % Frekuensi pencuplikan 8000 Hz
set (AI, 'SampleRate', Fs)
duration = 2;           % akuisisi selama 2 detik
set(AI, 'SamplesPerTrigger', duration*Fs);

Eksekusi

Okey! Sekarang kita siap melakukan akuisisi data suara. Pemicuan dilakukan dengan perintah start(), sistem akan segera melakukan akuisisi data setelah perintah tersebut diberikan. Sebelum memberikan perintah start(), ada baiknya ada getarkan dulu garputalanya dan dekatkan dengan mikrofonnya…

start(AI);

Untuk mendapatkan semua datanya:

data = getdata(AI);

Terminasi

Akuisisi akan berakhir setelah semua data diperoleh. Untuk mengakhiri sesi akuisisi, kita hapus objek AI dari workspace (tempat penyimpanan variabel dalam MATLAB):

delete(AI)

Hasilnya

Sekarang kita lihat komponen frekuensi dari garputala menggunakan FFT, sekaligus digambar hasilnya:

xfft = abs(fft(data));

Kemudian kita ubah nilai absolutnya menjadi besaran dB dan ambil komponen frekuensi real-nya:

mag = 20*log10(xfft);
mag = mag(1:end/2);

 

Hasil FFT dari garputalaHasil FFT dari garputala

Hasilnya menunjukkan bahwa frekuensi dasar garputala yang bersangkutana sekitar 440Hz dan overtone pertama sekitar 880Hz. Cara sederhana untuk menemukan frekuensi dasar dengan cara:

[ymax,maxindex]=max(mag);

Jawabannya 441 Hz.

Menggunakan Perangkat Keras yang Berbeda

Contoh ini juga bisa Anda terapkan untuk perangkat keras yang berbeda hanya dengan mengubah dua perintah. Misalnya, jika menggunakan kartu serbaguna dari National Instruments, berikan perintah sebagai berikut:

AI=analoginput('nidaq','Dev1');
addchannel(AI,0)

Demikian juga untuk perangkat keras yang lainnya…

Sumber

  • The Mathworks.

definisi citra

Citra

Citra adalah gambar dua dimensi yang dihasilkan dari gambar analog dua dimensi yang kontinu menjadi gambar diskrit melalui proses sampling.

Gambar analog dibagi menjadi N baris dan M kolom sehingga menjadi gambar diskrit. Persilangan antara baris dan kolom tertentu disebut dengan piksel. Contohnya adalah gambar/titik diskrit pada baris n dan kolom m disebut dengan piksel [n,m].

PENGOLAHAN CITRA

Pengolahan citra adalah salah satu cabang dari ilmu informatika. Pengolahan citra berkutat pada usaha untuk melakukan transformasi suatu citra/gambar menjadi citra lain dengan menggunakan teknik tertentu.