Anda di halaman 1dari 9

PENGOLAHAN CITRA DIGITAL

FUNGSI IMSHOW




DISUSUN OLEH :

DIAN PUSPA SARI
2112T0600
PROGRAM STUDI TEKNIK INFORMATIKA
STIMIK HIMSYA
2014
FUNGSI IMSHOW

Imshow merupakan fungsi di dalam matlab untuk menampilkan suatu gambar yang
berbentuk matrik dengan tipe data unsigned integer. Beberapa cara pengkodean fungsi imshow:
a. Imshow (x) menampilkan derajat keabuan (grayscale) dari suatu gambar x
b. Imshow (x, [low high]) menampilkan menampilkan derajat keabuan (grayscale) dari
suatu gambar x, yang sudah didefinisikan jangkauan (range) dari gambar tersebut dalam
[low high]. Nilai dalam range low dan dibawahnya, ditampilkan dengan warna hitam,
sementara untuk nilai dalam range high dan diatasnya, ditampilkan dalam warna putih.
Sedangkan nilai yang berada di dalam rangenya, ditampilkan dalam grayscale, dengan
menggunakan nilai awal dari derajat keabuan. Jika kita menggunakan matrik kosong ([ ])
untuk ([low high]), maka imshow akan menggunakan kode ([min(x(:)) max(x(:))] dimana
nilai minimum dari matrik x akan ditampilkan sebagai warna hitam dan nilai maksimum
dari matrik x akan ditampilkan sebagai warna putih.
c. Imshow (rgb) menampilkan warna asli dari gambar RGB.
d. Imshow (bw) manampilkan gambar biner. Imshow menampilkan pixels dengan nilai 0
sebagai warna hitam dan pixel yang bernilai 1 sebagai warna putih.
e. Imshow (x,map) menampilkan indeks gambar x dengan bentuk peta tabel warna. Sebuah
matrik dari tabel warna, dapat memiliki sembarang jumlah baris, tetapi pasti memiliki 3
jumlah kolom. Setiap baris direpresentasikan sebagai warna pada elemen pertama sebagai
nilai intensitas warna merah, elemen kedua intensitas warna hijau, dan elemen yang
ketiga sebagai intensitas warna biru. Nilai intensitas suatu warna dapat di klasifikasikan
dengan range 0.0 sampai dengan 1.0.
f. Imshow (filename) menampilkan gambar yang tersimpan di filename. File tersebut
harus dapat dibaca oleh fungsi imread atau dicomread. Imshow memanggil fungsi imread
atau dicomread, untuk membaca gambar dari sebuah file, tetapi tidak dapat menyimpan
data gambar tersebut di dalam Matlab workspace.

Contoh penggunaan fungsi imshow pada Matlab:
>> bird=imread('burung.jpg');
>> imshow(bird)













Gambar hasil dari fungsi imshow

Fungsi diatas merupakan salah satu contoh dari penggunaan imshow. Dimana imshow
digunakan untuk menampilkan gambar yang sudah disimpan sebelumnya dengan menggunakan
fungsi imread. File yang disimpan melalui fungsi imread sejatinya merupakan file dalam bentuk
matrik. Fungsi imshow dapat juga digunakan untuk deteksi derajat keabuan/Greyscale dari suatu
file gambar.
Jika x adalah sebuah matrik dengan tipe data uint8. Maka perintah imshow(x) pada
MATLAB akan menampilkan matrik x sebagai sebuah citra. Hal ini wajar, karena tipe data uint8
membatasi nilai integer antara 0 255. Namun tidak semua matrik suatu citra bertipe data uint8,
ada banyak perintah MATLAB pada pengolahan citra yang menghasilkan matrik bertipe double.
Ada dua pilihan langkah yang bisa diambil untuk matrik bertipe double ini , yaitu :
1. Mengubah matrik bertipe data double tersebut menjadi tipe data uint8, lalu menampilkan
matrik tersebut.
2. Menampilkan matrik bertipe double tersebut secara langsung.
Pilihan kedua mungkin bisa dilakukan karena perintah imshow akan menampilkan matrik bertipe
double sebagai citra grayscale sepanjang elemen matrik tersebut mempunyai nilai antara 0 dan 1.
Perhatikan contoh berikut ini :

>> bird=imread('burung.jpg');
>> bd=double(bird);
>> imshow(c),figure,imshow(bd)
gambar Citra bertipe uint8 gambar Citra bertipe double integer

Kedua citra diatas tampak sangat berbeda, pada gambar sebelah kiri, merupakan citra dari matrik
bertipe uint8 sedangkan gambar sebelah kanan merupakan citra dari matrik bertipe double. Hal
ini dikarenakan untuk matrik dengan tipe double, fungsi imshow akan menampilkan nilai antara
0 dan 1, dimana 0 menampilkan warna hitam dan 1 menampilkan warna putih. Nilai x antara 0 <
x < 1 akan ditampilkan sebagai derajat keabuan ( 255*x). Nilai yang lebih besar dari 1 akan
ditampilkan sebagai nilai 1 (putih) dan nilai yang kurang dari 0 akan ditampilkan sebagai 0
(hitam).
Untuk menampilkan matrik citra bertipe double agar citra yang ditampilkan sama dengan citra
dari matrik bertipe uint8, maka perlu dilakukan penskalaan kedalam jangkauan nilai 0 1. Hal
ini dilakukan dengan membagi setiap elemen matrik bertipe double dengan 255.







>> imshow(c),figure,imshow(cd/256)

gambar Citra bertipe uint8 gambar Citra bertipe double integer dengan skala/256

Citra bertipe double hasil penskalaan nilai 512 akan tampak lebih gelap, hal ini dikarenakan
semua elemen matrik citra akan mempunyai rentang nilai antara 0 0,5. Sedangkan citra dengan
penskalaan nilai 128 akan terlihat lebih terang, karena mempunyai rentang 0 2.
gambar Citra bertipe double int dengan skala/128 gambar Citra bertipe double integer dengan skala/512

Gambar yang ditampilkan dari fungsi imshow dengan double integer, sangat bergantung
kepada nilai dari penskalaan. Selain menggunakan perintah double untuk mengubah tipe data
unsigned integer 8 bit, kita juga bisa menggunakan perintah im2double. Dengan menggunakan
perintah im2double, akan mengkoreksi penskalaan dari gambar kita.

>> imshow(im2double(bird))









Gb. 4. Citra bertipe double int setelah diubah dengan im2double

Dengan menggunakan im2double, kita akan mendapatkan hasil tampilan gambar sesuai
dengan hasil tampilan gambar bertipe data uint8. Karena, im2double mengkonversi data dari tipe
unsigned integer 8 bit menjadi double integer dengan mengubah nilai numeric. Hal ini berbeda
dengan perintah double, yang hanya mengubah tipe data dari unsigned integer 8 bit menjadi
double integer tanpa mengubah nilai numeriknya. Sehingga jika kita ingin mengubah suatu tipe
data dari sebuah gambar, sebaiknya kita menggunakan perintah im2double daripada perintah
double. Pun begitu sebaliknya, untuk mengubah tipe data dari double integer ke unsigned integer
8 bit, lebih baik menggunakan perintah im2uint8.
Contoh penggunaan fungsi biner negatif:
a. Buat new editor di Matlab. Copykan syntax dibawah ini:
function binernegatif
clc;
fprintf('Mengolah Citra Biner dan Citra Negatif\n');
fprintf('========================================');
%proses input
NFile = input('burung.jpg(Grayscale):','s');
Nambang = input ('Nilai Ambang (0-255):');
Nnegatif = input ('Nilai Negatif (0-255):');
Gambar = imread('burung.jpg');
%proses menampilkan gambar asli
imshow(Gambar);
%proses citra biner
[lebar tinggi]=size(Gambar);
for a = 1:lebar
for b =1:tinggi
hasilbiner=double(Gambar(a,b));
if(Gambar(a,b)<Nambang)
hasilbiner=0
else
hasilbiner=255;
end
Gambar2(a,b)=hasilbiner;
end
end
%proses citra negatif
[lebar tinggi]=size(Gambar);
for x=1:lebar
for y=1:tinggi
hasil=Nnegatif-double(Gambar(x,y));
Gambar3(x,y)=hasil;
end
end

figure,imshow(uint8(Gambar2));
figure,imshow(uint8(Gambar3));
return
b. Simpan fungsi tersebut dengan nama binernegatif
c. Masuk ke command window, panggil fungsi biner negatif
>> binernegatif
d. Jalankan fungsi tersebut dengan menekan tombol enter
e. Hasil dari fungsi biner negatif(masukkan nilai ambang dan nilai negatif):


f. Hasil dari citra biner:


g. Hasil dari citra negatif:












DAFTAR PUSTAKA


An Introduction to Digital Image Processing with Matlab by Alasdair Mc Andrew

Catatanpeneliti.wordpress.com

Matlab Help File