Matematika Matlab untuk Citra
Haidaroh
01.36
Dalam Citra Digital terdapat beberapa operasi matematika yang dapat dilakukan untuk memanipulasi citra. Misalnya penambahan, pengurangan, perkalian, pembagian dan lain sebagainya.
Perintah-perintah tersebut berguna untuk memanipulasi citra agar menjadi lebih terang atau gelap. Mengapa demikian ? Hal itu terjadi karena nilai pixel akan mengalami perubahan, apakah menjadi lebih besar atau menjadi lebih kecil.
Apabila nilai pixel menjadi lebih besar, maka gambar akan menjadi lebih terang dan begitu sebaliknya maka citra akan menjadi lebih gelap.
- imadd
- imsubtract
- immultiply
- imcomplement
- imabsdiff
Sebelum menggunakan perintah tersebut, untuk menghemat penulisan, maka perlu digunakan sebuah variabel untuk menampung sebuah citra. Misalnya :
i = imread('adore.png`);
Maka akan diperoleh sebuah variabel bernama 'i' yang menampung citra adore.png. Selanjutnya kita hanya menggunakan variabel 'i' tersebut.
1. imadd
Imadd adalah perintah pada matlab untuk menambah setiap pixel citra dengan nilai konstanta tertentu. Cara penulisannya adalah sebagai berikut :
a=imadd(i,100);
perintah tersebut mengandung arti bahwa, setiap pixel dari citra 'i' akan ditambahkan nilainya dengan 100
Dari gambar 'i' diperoleh nilai pixel seperti terlihat pada gambar 1.
Gambar 1. Tampilan pixel dari citra 'i' |
Terlihat pada koordinat (1,1) nilai RGB-nya adalah R=0, G=0 dan B=0.
Setelah dilakukan operasi a=imadd(i,100), maka diperoleh nilai pixel seperti terlihat pada gambar 2.
Gambar 2. Tampilan pixel citra setelah ditambah dengan 100 |
Terlihat pada koordinat (1,1), maka nilai berubah menjadi R=100, G=100 dan B=100. Bukan hanya itu, terlihat semua pixel berubah dengan penambahan 100. Tetapi untuk nilai pixel yang berubah menjadi lebih besar dari 255, maka akan dipatok/dituliskan pada nilai maksimal tersebut. Gambar tampak menjadi lebih terang.
2. imsubtract
Adalah perintah untuk mengurangi setiap nilai pixel dengan nilai tertentu menjadi lebih kecil dari sebelumnya. Tentunya gambar akan menjadi lebih gelap. Ini berkebalikan dengan perintah imadd. dari gambar 1 kalau dilakukan perintah ini maka akan menjadi :
a=imsubtract(i,100);
Setelah perintah ini dieksekusi, maka pixel citra akan berubah menjadi lebih kecil seperti tampak pada gambar 3.
Gambar 3. Pixel setelah diberikan perintah imsubtract. |
Pada koordinat (7,2) terlihat nilai RGB menjadi R=118, G=107 dan B=14. Nilai ini berubah dari yang sebelumnya pada gambar 1. yaitu RGB, R=218, G=207 dan B=114.
R=218-100=118
G=207-100=107
B=114-100=14
Nilai pixel yang apabila dikurangi menjadi lebih kecil dari 0, maka nilainya akan dituliskan pada angka minimum 0 tersebut.
3. Immultiply
Adalah perintah untuk mengalilkan nilai setiap pixel menjadi sekian kalinya dari nilai pixel awal. Nilai pengali ada 2 macam, yaitu : nilai perbesaran (perkalian) dan nilai pengecilan (pembagian). Nilai perbesaran diperoleh dengan cara memberkan nilai pengalinya lebih besar dari 1 (pengali>1). Sedangkan pengecilan dilakukan dengan memberikan nilai pengalinya berkisar antara 0 s/d 1 (01).
Contoh dari citra i kalau dikalikan dengan nilai 2, maka hasilnya tampak seperti pada gambar 4.
a=immultiply(i,2);
Gambar 5. Tampilan pixel setelah dikalikan dengan 2 |
Terlihat pada koordinat (5,1) nilai berubah menjadi (60,52,30) dari koodinat sebelumnya pada gambar 1. (30,26,15). Artinya semua nilai pixel awal pada gambar 1 dikalikan dengan dengan 2. Ini disebut dengan perbesaran.
a=immultiply(i,0.5);
Pada perintah diatas, maka akan diperoleh nilai pixel menjadi setengahnya dari nilai pixel awal.
Gambar 6. Nilai pixel setelah dibagi 2 / dikalikan dengan 0.5 |
Terlihat pada koordinat (5,1) pixel bernilai (15,13,8). sedangkan pixel sebelumnya dari gambar 1 bernilai (30,26,16). Artinya bahwa nilai pixel semula dikalikan dengan setengahnya maka hasilnya akan menjadi setengah nilai awalnya. Ini artinya adalah pengecilan.
4. imcomplement
Adalah perintah untuk membalik semua nilai pixel.
Misalnya 255 dibalik menjadi 0, 0 dibalik menjadi 255.
254 dibalik menjadi 1
253 dibalik menjadi 2
10 dibalik menjadi 245
11 dibalik menjadi 244
12 dibalik menjadi 243
sehingga muncullah rumusnya menjadi ==> y = 255 - x,
dimana y adalah nilai hasil dan x adalah pixel awal.
a=imcomplement(i);
maka akan diperoleh nilai pixel baru menjadi tampak pada gambar 7.
Gambar 7. imcomplement dari gambar 1. |
Terlihat pada koordinat (8,1) nilainya menjadi (67,78,165) dari nilai pixel sebelumnya pada gambar 1. (188,177,90). Lihatlah kedua nilai tersebut bila dijumlahkan masing-masing akan bernilai 255.
6. imabsdiff
Adalah perintah untuk mendapatkan selisih nilai 2 pixel dari dari 2 citra pada masing-masing koorddinat yang sama.
Misalnya gambar 1 (adore.png) akan dicari selisih nilai pixelnya dengan gambar 8 (add.png), maka akan diperolah nilai baru selisih dari kedua citra tersebut tampak pada gambar 9.
Gambar 8. Nilai pixel dari citra add.png |
Lihatlah pada koordinat (6,1) bernilai (24,179,1) dan coba ada lihat pada gambar 1 dikoordinat yang sama (6,1), nilainya adalah (100,91,47). Maka apabila perintah :
a=imabsdiff(i,b);
Gambar 9. Selisih nilai pixel dari dua citra (gambar 1 dengan gambar 8) |
Nilai RGB pada koordinat (6,1) adalah (76,88,46).
Nilai ini diperoleh dari selisih nilai pixel citra (24,179,1) dengan (100,91,47), yaitu :
R=100-24 = 74
G=179-91=88
B=47-1=46
Hasil gambar complementnya seperti terlihat pada gambar 10.
Gambar 10a. Adore.png |
Gambar 10b. Add.png |
Gambar 10. Hasil complement Gambar 10a dan Gambar 10b |
Demikian, cerita singkat dari eyang. Semoga bermanfaat untuk pembaca semua.