Anda di halaman 1dari 51

Pengenalan Dasar

Citra

STMIK PPKIA Pradnya Praramita


Sigit Setyowibowo, ST., MMSI
Representasi Citra Digital
Citra digital dibentuk oleh kumpulan titik yang dinamakan piksel
(pixel atau picture element). Setiap piksel digambarkan sebagai
satu kotak kecil. Setiap piksel mempunyai koordinat posisi
Citra dan nilai penyusun piksel
Notasi piksel dalam citra
Kuantisasi Citra
Citra digital sesungguhnya dibentuk melalui pendekatan yang
dinamakan kuantisasi. Kuantisasi adalah prosedur yang dipakai
untuk membuat suatu isyarat yang bersifat kontinu ke dalam bentuk
diskret

Perbandingan isyarat analog dan isyarat


diskret
Digitalisasi citra biner 8x8 piksel untuk memperlihatkan bentuk piksel
ideal

warna hitam (0) dan putih (1)


Jangkauan nilai pada citra keabuan

Kompon Bit per Jangkaua


Penggunaan
en warna Piksel n

1 0-1 Citra biner: dokumen faksimili

8 0-255 Umum: foto dan hasil pemindai

Kualitas tinggi: foto dan hasil


1 12 0-4095
pemindai

Kualitas profesional: foto dan hasil


14 0-16383
pemindai

Kualitas tertinggi: citra kedokteran


16 0-65535
dan astronomi
Jangkauan nilai pada citra berwarna
Komponen Bit per Jangkauan Penggunaan
Warna Piksel

3 24 0-1 RGB umum

36 0-4095 RGB kualitas tinggi

42 0-16383 RGB kualitas profesional

4 32 0-255 CMYK (cetakan digital)


Kuantisasi citra dengan menggunakan
berbagai bit

(a) 8 bit (b) 5 bit (c) 4 bit

(d) 3 bit (e) 2 bit (f) 1 bit


Kualitas Citra
Di samping cacah intensitas kecerahan, jumlah piksel yang
digunakan untuk menyusun suatu citra mempengaruhi kualitas citra.
Istilah resolusi citra biasa dinyatakan jumlah piksel pada arah lebar
dan tinggi.
Resolusi piksel biasa dinyatakan dengan notasi m x n, dengan m
menyatakan tinggi dan n menyatakan lebar dalam jumlah piksel
Efek resolusi berdasar jumlah piksel pada citra
ketika gambar disajikan dengan ukuran yang
sama

(a) Citra berukuran 512 x 512 (b) Citra berukuran 256 x 256
piksel piksel

(c) Citra berukuran 128 x 128 piksel (d) Citra berukuran 64 x 64 piksel
Membaca Citra
Bentuk pemanggilannya:
Img = imread(nama_file_citra)
Dalam hal ini, nama_file_citra menyatakan nama file citra yang
hendak dibaca dan Img menyatakan larik (array) yang menampung
data citra yang dibaca
Daftar format file gambar yang bisa dibaca oleh imread
Format Ekstensi Keterangan
Gambar
TIFF .tif, .tiff Tagged Image File Format merupakan format citra yang mula-
mula dibuat boleh Aldus. Kemudian, dikembangkan oleh
Microsoft dan terakhir oleh Adobe.
JPEG .jpg, Joint Photographics Expert Group adalah format citra yang
.jpeg dirancang agar bisa memampatkan data dengan rasio 1:16.

GIF .gif Graphics Interface Format merupakan format yang


memungkinkan pemampatan data hingga 50%. Cocok untuk
citra yang memiliki area yang cukup besar dengan warna yang
sama.
BMP .bmp Windows Bitmap merupakan format bitmap pada Windows.
PNG .png Portable Network Graphics biasa dibaca ping. Asal mulanya
dikembangkan sebagai pengganti format GIF karena adanya
penerapan lisensi GIF. Mendukung pemampatan data tanpa
menghilangkan informasi aslinya.
Contoh berikut digunakan untuk membaca file citra bernama
mandrill.png yang terdapat pada folder C:\Image.

>> Img = imread(C:\Image\mandrill.tif);


>>
Mengetahui Ukuran Citra
Secara umum, ukuran matriks Img adalah M x N. Untuk mengetahui
nilai M dan N yang sesungguhnya, dapat digunakan fungsi pada
Octave yang bernama size. Contoh untuk mengetahui dimensi
pada matriks Img:

>> Ukuran = size(Img)


Ukuran =

512 512

>>

Dengan cara seperti itu, terlihat bahwa Img berisi 512 baris dan 512
kolom piksel.
Untuk mendapatkan jumlah baris dan jumlah kolom secara tersendiri,
perlu diberikan perintah seperti berikut:
>> jum_baris = Ukuran(1);
>> jum_kolom = Ukuran(2);
>>

Angka 1 dan 2 pada ukuran menyatakan indeks. Dengan cara seperti


itu, jum_baris berisi jumlah baris pada larik Img dan jum_kolom berisi
jumlah kolom pada larik Img.
Sebagai alternatif, dapat ditulis perintah seperti berikut:

>> [jum_baris, jum_kolom] = size(Img);

Dengan cara seperti itu, jum_baris berisi jumlah baris pada larik Img
dan jum_kolom berisi jumlah kolom pada larik Img
Menampilkan Citra
Citra dapat ditampilkan dengan mudah melalui fungsi imshow. Contoh berikut
digunakan untuk menampilkan citra yang terdapat di Img:

>> imshow(Img);
>>

Hasilnya berupa jendela yang menampilkan citra pada Img


Apabila dikehendaki untuk menampilkan dua citra di dua jendela
masing-masing, fungsi figure perlu dipanggil terlebih dulu sebelum
memanggil imshow. Contoh:

>> Sungai = imread('C:\Image\innsbruck.tif');


>> Bangunan = imread('C:\Image\altstadt.png');
>> figure(1); imshow(Sungai);
>> figure(2); imshow(Bangunan);

Hasilnya, gambar sungai ditampilkan di jendela 1 dan gambar


bangunan diletakkan di jendela 2. Gambar berikut memperlihatkan
keadaan pada kedua jendela, yaitu kebetulan sebagian jendela 2
menutup jendela 1
Menampilkan dua citra di jendela masing-masing
Octave menyediakan fasilitas yang memungkinkan dua buah citra
diletakkan dalam satu jendela. Berdasarkan larik Sungai dan
Bangunan di depan, dapat dicoba untuk memberikan perintah
berikut:

>> close all;


>> subplot(1,2,1); imshow(Sungai);
>> subplot(1,2,2); imshow(Bangunan);
Contoh pemakaian subplot
Mengenal Jenis Citra
Ada tiga jenis citra yang umum digunakan dalam pemrosesan citra.
Ketiga jenis citra tersebut yaitu citra berwarna, citra berskala
keabuan, dan citra biner
Citra Berwarna
Citra berwarna, atau biasa dinamakan citra RGB, merupakan jenis
citra yang menyajikan warna dalam bentuk komponen R (merah), G
(hijau), dan B (biru). Setiap komponen warna menggunakan 8 bit
(nilainya berkisar antara 0 sampai dengan 255). Dengan demikian,
kemungkinan warna yang bisa disajikan mencapai 255 x 255 x 255
atau 16.581.375 warna
Warna dan nilai penyusun warna

Warna R G B
Merah 255 0 0
Hijau 0 255 0
Biru 0 0 255
Hitam 0 0 0
Putih 255 255 255
Kuning 0 255 255
Warna RGB dalam ruang
berdimensi tiga
Citra berwarna dan representasi warnanya.
Setiap piksel dinyatakan dengan nilai R, G, dan B

Perlu diketahui, sebuah warna tidak hanya dinyatakan


dengan komposisi R, G, dan B tunggal. Pada Tabel 2.4 terlihat
bahwa warna merah mempunyai R=255, G=0, dan B=0.
Namun, komposisi R=254, G=1, B=1 juga berwarna merah.
Citra berwarna pun dibaca melalui imread. Contoh:

>> Kota = imread('C:\Image\innsbruckcity.png');

Nah, sekarang dapat dicoba untuk mengenakan size pada Kota:

>> size(Kota)
ans =

747 500 3
Hasil pembacaan citra berwarna

Dimensi ketiga menyatakan komponen R, G, B.


Indeks pertama menyatakan komponen R,
indeks kedua menyatakan komponen G, dan
indeks ketiga menyatakan komponen B
Berikut adalah cara untuk mendapatkan komponen R, G, dan B
pada larik Kota di depan:

>> R = Kota(:,:,1);
>> G = Kota(:,:,2);
>> B = Kota(:,:,3);
Untuk menampilkan gambar berwarna, imshow bisa digunakan
seperti kalau mau menampilkan gambar berskala keabuan.
Contoh:

>> figure(1);
>> imshow(Kota);
Citra Berskala Keabuan
Sesuai dengan nama yang melekat, citra jenis ini menangani gradasi
warna hitam dan putih, yang tentu saja menghasilkan efek warna
abu-abu. Pada jenis gambar ini, warna dinyatakan dengan
intensitas. Dalam hal ini, intensitas berkisar antara 0 sampai dengan
255. Nilai 0 menyatakan hitam dan nilai 255 menyatakan putih.
Citra Biner
Citra biner adalah citra dengan setiap piksel hanya dinyatakan
dengan sebuah nilai dari dua buah kemungkinan (yaitu nilai 0 dan
1). Nilai 0 menyatakan warna hitam dan nilai 1 menyatakan warna
putih.
Contoh berikut menunjukkan cara membaca dan menampilkan citra
biner.

>> Img = imread('c:\Image\daun_bin.tif');


>> imshow(Img);
>>
Tampilan citra biner
Mengonversi Jenis Citra
Dalam praktik, seringkali diperlukan utuk mengonversi citra berwarna
ke dalam bentuk citra berskala keabuan mengingat banyak
pemrosesan citra yang bekerja pada skala keabuan. Namun,
terkadang citra berskala keabuan pun perlu dikonversikan ke citra
biner, mengingat beberapa operasi dalam pemrosesan citra
berjalan pada citra biner.
Bagaimana cara mengubah citra berwarna ke dalam citra berskala
keabuan?
Secara umum citra berwarna dapat dikonversikan ke citra berskala
keabuan melalui rumus:

= + + , + + = 1
dengan R menyatakan nilai komponen merah, G menyatakan nilai
komponen hijau, dan B menyatakan nilai komponen biru
Misalnya, sebuah piksel mempunyai komponen R, G, B sebagai
berikut:

R = 50
G = 70
B = 61

Jika a, b, dan c dibuat sama, akan diperoleh hasil seperti berikut:


I = (50 + 70 + 60) / 3 = 60
Salah satu contoh rumus yang biasa dipakai untuk mengubah ke
skala keabuan yaitu:
= 0,2989 + 0,5870 + 0,1141
Contoh berikut menunjukkan cara melakukan konversi dari citra
berwarna ke citra biner.

>> Img =
imread('C:\Image\innsbruckcity.png');
>> Abu = uint8(0.2989 * double(Img(:,:,1)) + ...

0.5870*double(Img(:,:,2)) + ...
0.1141 * double(Img(:,:,3)));
Tanda menyatakan bahwa perintah pada
baris tersebut masih mempunyai lanjutan

>> imshow(Abu); pada baris berikutnya.


Tanda : berarti semua nilai.
double dipakai untuk melakukan konversi dari
tipe bilangan bulat 8 bit (uint8) ke tipe double
(yang memungkinkan pemrosesan bilangan
real berpresisi ganda).
uint8 berguna untuk mengonversi dari tipe
double ke uint8 (tipe bilangan bulat 8 bit).
Hasil konversi citra berwarna ke citra berskala
keabuan
Bagaimana halnya kalau dikehendaki untuk mengonversikan citra
berskala keabuan ke citra biner?
Strategi yang dipakai yaitu dengan menerapkan suatu nilai yang
dikenal sebagai nilai ambang (threshold). Nilai tersebut dipakai untuk
menentukan suatu intensitas akan dikonversikan menjadi 0 atau
menjadi 1. Secara matematis, konversi dinyatakan dengan rumus:
0,
=
1, <
% KEBINER Digunakan untuk mengonversi file
% daun_gray.png ke citra biner

Img = imread('c:\Image\daun.tif');
[tinggi, lebar] = size(Img);

ambang = 160; % Nilai ini bisa diubah-ubah


biner = zeros(tinggi, lebar);
for baris=1 : tinggi
for kolom=1 : lebar
if Img(baris, kolom) >= ambang
Biner(baris, kolom) = 0;
else
Biner(baris, kolom) = 1;
end
end
end

imshow(Biner);
Untuk menjalankan program di depan, berikan perintah

>> kebiner;

Hasil konversi daun.tif ke bentuk biner


Hasil konversi ke citra biner dengan berbagai nilai ambang
Fungsi yang disediakan Octave untuk kepentingan konversi ke
aras keabuan
Fungsi Kegunaan
im2bw(I, level) Berguna untuk mengonversikan citra berskala
im2bw(RGB, level) keabuan (I) ataupun berwarna (RGB) ke
dalam citra biner dengan menggunakan level
sebagai ambang konversi. Di MATLAB, jika
argumen kedua (yaitu level) tidak disertakan,
nilai 0,5 secara bawaan digunakan sebagai
ambang konversi. Pada Octave, argumen
kedua harus disertakan. Nilai balik fungsi ini
berupa citra biner
rgb2gray(RGB) Berguna untuk mengonversi citra berwarna
(RGB) ke citra berskala keabuan. Nilai balik
fungsi ini berupa citra berskala keabuan
Agar terbiasa dengan kedua fungsi tersebut, berikut disajikan contoh
penggunaannya. Contoh pertama:

>> Img = imread('C:\Image\daun.tif');


>> BW = im2bw(Img, 0.6);
>> imshow(BW);

Hasilnya seperti berikut:


Hasil pembentukan citra biner melalui im2bw
Adapun contoh pemakaian rgb2gray:

>> RGB =
imread('C:\Image\innsbruckcity.png');
>> Abu = rgb2gray(RGB);
>> imshow(Abu);

Hasilnya seperti berikut.


Hasil pembentukan citra berskala keabuan melalui rgb2gray
Menyimpan Citra
Untuk kepentingan menyimpan citra ke dalam file, fungsi imwrite
pada Octave dapat digunakan. Pemakaiannya:

imwrite(A, nama_file)

A dapat berupa larik dua dimensi (citra berskala keabuan) ataupun


larik berdimensi tiga (citra RGB).
Contoh:

>> Img = imread('C:\Image\daun.tif');


>> X = 255 Img;
>> imwrite(X, negatif_daun.png);
Hasil penyimpanan citra negatif_daun.png
Latihan:
1. Jelaskan mengenai koordinat citra.
2. Apa yang dimaksud dengan kuantisasi citra?
3. Jelaskan hubungan jumlah bit dalam kuantisasi citra dengan kompresi
data.
4. Jelaskan makna kualitas citra.
5. Jelaskan pengertian :
6. citra berwarna
7. citra berskala keabuan
8. citra biner
9. Jelaskan mekanisme untuk mengubah citra berwarna ke dalam citra
berskala keabuan.
10. Bagaimana prinsip untuk mengubah citra berskala keabuan ke
citra biner?
11. Ubahlah innsbruckcity.png ke citra berskala keabuan dan
kemudian simpan dengan nama inns_gray.png.
12. Buatlah program untuk memproses citra daun_gray.png agar
diperoleh hasil seperti berikut.
13. Gunakanlah fungsi im2bw untuk mengonversikan citra
innsbruckcity.png ke dalam bentuk citra biner dengan
menggunakan level sebesar 0,7, 0,5, dan 0,3. Bagaimana
kesan Anda mengenai hasil-hasil yang diperoleh?
14. Buatlah program untuk menguantisasi citra daun_gray.png
dengan 2 bit. Tampilkan hasilnya. Apakah hasilnya masih
terlihat seperti aslinya? Bila tidak, dengan menggunakan
berapa bit agar gambar tersebut terlihat sesuai dengan
aslinya?

Anda mungkin juga menyukai