Rabu, 30 Oktober 2013

Dasar-Dasar Pengolahan Citra Digital dengan MATLAB

Filled under:

Apa itu digital image processing?
Image atau gambar adalah representasi spasial dari suatu objek yang sebenarnya dalam bidang dua dimensi  yang biasanya ditulis dalam koordinat kartesian x-y, dan setiap koordinat merepresentasikan satu sinyal terkecil dari objek yang biasanya koordinat terkecil ini disebut sebagai piksel. Karena merupakan sistem koordinat yang memiliki nilai maka biasanya image dianggap sebagai sebuah matrik x-y yang berisi nilai piksel.

Pembacaan Image
Pada matlab fungsi untuk melakukan pembacaan image standar yaitu:
imread(‘filename’) 
Perintah ini digunakan untuk membaca beberapa format file diantaranya:

Format
Dieskripsi
Extentiont
TIFF
Tangged Image File Format
.tif
JPEG
Join Photographics Expert’s Group
.jpg
GIF
Graphics Interchange Format
.gif
BMP
Windows Bitmap
.bmp
PNG
Portable Network Graphics
.png
XWD
X-Windows Dump
.xwd
 
Hasil dari pembacaan imread(‘filename’) bisa berupa matriks dua dimensi jika gambar yang dibaca adalah gambar grayscale dan matrik 3 dimensi jika berupa gambar 3 dimensi.

Ekstraksi Nilai Piksel Red, Green dan Blue (RGB)
Hampir setiap pengolahan citra yang berbasis warna perlu dilakukan pemisahan band-band yang ada pada citra khususnya citra RGB, MATLAB menyediakan fasilitas yang cukup baik dalam memisahkan ketiga warna RGB, yaitu sebagai berikut:
Gambar Asli
gambar=imread(‘kelinci.tif’); %--------membaca file gambar 
red=gambar(:,:,1); %memanggil matriks gambar yang hanya berisi piksel warna merah 
green=gambar(:,:,2);% memanggil matriks gambar yang hanya berisi piksel warna merah 
blue=gambar(:,:,3); %memanggil matriks gambar yang hanya berisi piksel warna merah 
%----------menampilkan gambar--------------------- 
imshow(gambar) 
imshow(red)
imshow(green) 
imshow(blue)

Hasil Ekstrasi Nilai Piksel
Terlihat bahwa untuk mengambil nilai piksel merah memiliki indeks 1, warna hijau memiliki indeks 2 dan warna biru memiliki indeks 3.


Konversi Gambar RGB ke Grayscale
Untuk merubah gambar RGB ke gambar grayscale di MATLAB disediakan fungsi khusus yaitu rgb2gray(matrik_gambar),  tetapi kadangkala diinginkan untuk perubahan bentuk grayscale ini tidak menggunakan fungsi MATLAB yang sudah ada yang merupakan nilai rata-rata piksel RGB tetapi masing-masing nilai RGB diberi nilai bobot yang berbeda-beda, hal ini dengan mudah dilakukan dengan menggunakan pemisahan nilai seperti yang telah dilakukan diatas seperti contoh berikut:
%Konversi Gambar RGB ke Grayscale
%Untuk merubah gambar RGB ke gambar grayscale di MATLAB disediakan fungsi_
%khusus yaitu rgb2gray(matrik_gambar),  tetapi kadangkala diinginkan untuk_
%perubahan bentuk grayscale ini tidak menggunakan fungsi MATLAB yang sudah_
%ada yang merupakan nilai rata-rata piksel RGB tetapi masing-masing nilai_
%RGB diberi nilai bobot yang berbeda-beda, hal ini dengan mudah dilakukan_
%dengan menggunakan pemisahan nilai seperti yang telah dilakukan diatas seperti contoh berikut:

gambar=imread('kelinci.tif'); %--------membaca file gambar
red=gambar(:,:,1); %memanggil matriks gambar yang hanya berisi piksel warna merah
green=gambar(:,:,2);% memanggil matriks gambar yang hanya berisi piksel warna merah
blue=gambar(:,:,3); %memanggil matriks gambar yang hanya berisi piksel warna merah
gray2=0.3*red+0.5*green+0.2*blue;
Membuat Histogram Image

---bersambung--







Penulis=> Unknown15.06

Minggu, 13 Oktober 2013

(01) Pemrograman MATLAB

Filled under:

Dasar-Dasar Pemrograman Matlab
A. Langkah-langkah MATLAB
Untuk meminta MATLAB menghitung 1 + 1, anda perlu mengetikkan berikut ini pada command window seperti pada Gambar A.1 betikut ini :

Gambar A.1 MATLAB menghitung 1+1
Keberadan spasi dalam suatu formula tidak mempengaruhi apa pun. Contoh pada Gambar A.2 "SPASI" tidak mempengaruhi MATLAB dalam menghitung formula :
  • 1 + 3 * 2 / 5 - 1 dan
  • 1+3*2/5-1
  • dan hasilnya akan tetap sama yaitu "1,2000"
 
Gambar A.2 Spasi tidak mempengaruhi MATLAB dalam menghitung formula
 B. Operator-operator Aritmatika MATLAB
Evaluasi terhadap ekspressi dilakukan dengan penggunaan operator-operator aritmatika, yang ditampilkan pada Tabel B.1 berikut ini. Variabel a dan b berperan sebagai operand.



Operasi
Format Aljabar
MATLAB
Contoh
Penjumlahan
a + b
a + b
5+7
Pengurangan
a - b
a - b
3-4
Perkalian
a x b
a * b
8.13*5.3
Pembagian Kanan
a ÷ b
a / b
3.14/4.5
Pembagian Kiri
b ÷ a
b \ a
7\8
Pemangkatan
ab
a^b
3^9

Tabel B.1 Operator Aritmatika MATLAB

Contoh Aritmatika pada MATLAB :
  • Contoh 1:Ketik pada jendela command window MATLAB anda  seperti pada Gambar B.1!

Gambar B.1
  • Contoh 2

Gambar B.2

MATLAB tidak mengerti sembarang perintah yang salah, artinya Anda diminta untuk menuliskan perintah dengan sintaks yang benar. Perhatikan perintah yang tidak lengkap berikut ini:

>> 6+8-7*
 6+8-7*
      |
Error: Expression or statement is incomplete or incorrect.


Di sini MATLAB mengindikasikan terjadinya kesalhan sintaks. MATLAB menyatakan bahwa yang tidak lengkap.

C. Derajat Keutamaan Operator-Operator Aritmatika MATLAB
Derajat keutamaan operator2 aritmatika MATLAB dalam suatu ekspresi dinyatakan dengan urutan aturan-aturan berikut ini :
  1. Tanda kurang, dimulai dari yang paling dalam.
  2. Pemangkatan (^), dari kiri ke kanan.
  3. Perkalian (*) dan pembagian (/ atau \) dengan derajat keutamaan setingkat, dari kiri ke kanan.
  4. Penjumlahan (+) dan pengurangan (-) dengan derajat keutamaan setingkat, dari kiri ke kenan.
Ketika operator2 dalam suatu ekspresi memiliki derajat keutamaan yang sama, maka operasi akan dilakukan dengan urutan dari kiri ke kanan. Jadi 3*4/5 dievaluasi sebagai (3*4)/5 dan bukan sebagai 3*(4/5). Berikut adalah beberapa contoh ekivalensi derajat keutamaan dalam suatu ekspresi.
>> 3^5-6/5*7-2
ans =
  232.6000
>> 3^(5)-((6/5)*7)+2
ans =
  236.6000
>> 7+4^6*5/8^5-5
ans =
    2.6250
>> 7+(((4^(6))*5)/(8^(5)))-5
ans =
    2.6250
D. Variabel-Variabel MATLAB
Variabel-variabel dalam MATLAB merupakan objek-objek bernama yang ditugasi nilai dengan operator =. Nama variabel MATLAB dibatasi hanya terdiri dari 31 karakter (termasuk huruf besar dan huruf kecil), karakter garis bawah '_', dan angka 0 sampai 9. Penamaan variabel tidak bisa dimulai dengan angka. Berikut adalah beberapa contoh penugasan variabel-variabel secara benar.

>> cinta=4
cinta =
     4

>> seMangat_1=5
seMangat_1 =
     5

>> nama='Iwan Maksud'
nama =
Iwan Maksud
Berikut merupakan beberapa contoh penugasan yang sala.
>> 2_oke='aku'
 2_oke='aku'
 |
Error: The input character is not valid in MATLAB statements or expressions.

>> saya%1=5
Undefined function or variable 'saya'.

>> aku adalah=8.4
Undefined function 'aku' for input arguments of type 'char'.
 Untuk menugasi suatu variabel dengan suatu nilai tanpa menghasilkan kemunculan atau tampilan hasil penugasan, Anda bisa mengakhiri suatu penugasan dengan tanda titik koma (;). Coba Anda ketikan berikut ini dan perhatikan apa yang terjadi.
a=4
b=5;
c=a*b;
d=c/4;
d
who
whos
clear who
Penugasan-ulang  suatu variabel dilakukan dengan menugaskan kembali variabel tersebut dengan suatu nilai baru dalam suatu statemen penugasan yang baru. Perhatikan bahwa perintah sebelumnya yang melibatkan variabel yang telah ditugasi-ulang tersebut tida secara otomatis terevaluasi-ulang. Perhatikan contoh berikut ini.

>> klaten=3;
>> jogja=5.4;
>> balige=5.3;
>> total=klaten+jogja+balige
total =
   13.7000

>> klaten=5;
>> total
total =
   13.7000
Setelah menghitung total, nilai klaten ditugasi-ulang menjadi 5. Perhatikan bahwa nilai total tidak secara otomatis berubah. Pada contoh ini, untuk mengalkulasikan-ulang total, maka statemen penugasan total harus diberikan kembali.
>> total=klaten+jogja+balige
total =
   15.7000



Tabel 2.1 : Kunci-kunci dalam MATLAB untuk menghemat waktu pengetikan
Konci
Kontrol
Kunci
Ekivalen
Arti
#
Ctrl-p
Memanggil baris perintah sebelumnya
$
Ctrl-n
Memanggil baris perintah selanjutnya
!
Ctrl-b
Menggeser satu karakter ke belakang
"
Ctrl-f
Menggeser satu karakter ke depan
Ctrl - "
Ctrl-r
Menggeser satu kata ke kanan
Ctrl - !
Ctrl-l
Menggeser satu kata ke kiri
home
Ctrl-a
Menggeser ke awal baris
end
Ctrl-e
Menggeser ke akhir baris
esc
Ctrl-u
Mengosongkan baris perintah
del
Ctrl-d
Menghapus karakter-karakter mulai dari kursor ke kanan
backspace
Ctrl-h
Menghapus karakter-karakter sebelum kursor
 

E. Teknik Mengetik dalam MATLAB
Jika Anda melakukan kesalahan dalam mengetikkan perintah MATLAB, Anda tidak perlu mengetik ulang keseluruhan baris perintah tersebut. Kunci-kuci control yang bisa Anda gunakan untuk menghemat waktu pengetikan jika terjadi kesalahan pada Tabel 2.1

F. Format Keluaran
Format keluaran MATLAB dikendalikan oleh perintah-perintah seperti yang ditampilkan pada table 1.3. berikut ini :
Kunci Kontrol
Arti
format short
Akurasi 5 dijit
format long
Akurasi 15 dijit
format short e
Notasi saintifik, 5 dijit
format long e
Notasi saintifik, 15 dijit
format short g
Akurasi 6 dijit
format long g
Akurasi 16 dijit
format hex
Format heksadesimal
format ‘+’
+, -, dan kosong
format bank
Format bank, dolar dan sen
format rat
Menjadi rasio integer  terdekat


Perhatikan beberapa contoh format MATLAB berikut ini :


>>format short
>>e=123.345889
e =
      123.3459

>>format long
>>e=12329387293.345889
e=
      1.232938729334589e+010

>>format hex
>>e=12329387293. 345889
e=
     4206f71c28eac461

>>format rat
>>23.56
ans=
        589/25
>>Bersambung<<.. :)

Penulis=> Unknown11.32