dcae8 sessi 2 pengenalam citra dasar

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
en
Piksel
warna

1

Jangkaua
Penggunaan
n

1

0-1

Citra biner: dokumen faksimili

8

0-255


Umum: foto dan hasil pemindai

12

0-4095

Kualitas tinggi:
pemindai

14

0-16383

Kualitas profesional: foto dan hasil
pemindai

16

0-65535


Kualitas tertinggi: citra kedokteran
dan astronomi

foto

dan

hasil

Jangkauan nilai pada citra berwarna
Kompone

Bit per

n Warna

Piksel

3


4

Jangkauan

Penggunaan

24

0-1

RGB umum

36

0-4095

RGB kualitas tinggi

42


0-16383

RGB

0-255

profesional
CMYK (cetakan digital)

32

kualitas

Kuantisasi citra dengan
menggunakan berbagai 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

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

Eksten Keterangan

Gambar
TIFF

si
.tif, .tif Tagged Image File Format merupakan format citra yang mulamula dibuat boleh Aldus. Kemudian, dikembangkan oleh


JPEG

.jpg,

Microsoft dan terakhir oleh Adobe.
Joint Photographics Expert Group adalah format citra yang

GIF

.jpeg
.gif

dirancang agar bisa memampatkan data dengan rasio 1:16.
Graphics
Interface
Format
merupakan
format
yang
memungkinkan pemampatan data hingga 50%. Cocok untuk

citra yang memiliki area yang cukup besar dengan warna

BMP
PNG

.bmp
.png

yang sama.
Windows Bitmap merupakan format bitmap pada Windows.
Portable Network Graphics biasa dibaca ‘ping’. Asal mulanya
dikembangkan sebagai pengganti format GIF karena adanya
penerapan lisensi GIF. Mendukung pemampatan data tanpa

XWD

.xwd

menghilangkan informasi aslinya.
XWindow Dump




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

0

255

255

Kuning

Warna RGB dalam ruang
berdimensi tiga

Citra berwarna dan representasi warnanya.
Setiap piksel dinyatakan dengan nilai R, G,
dan B

Catatan

 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:

 
 


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:



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)) + ... 
Catatan
Tanda … menyatakan bahwa perintah pada

0.1141 * double(Img(:,:,3)));

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:

% 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
im2bw(I, level)

Kegunaan
untuk
mengonversikan

Berguna

im2bw(RGB, level)

berskala keabuan (I) ataupun berwarna (RGB)

citra

ke dalam citra biner dengan menggunakan
level sebagai ambang konversi. Di MATLAB,
jika

argumen

disertakan,

kedua

nilai

0,5

(yaitu

level)

secara

tidak

bawaan

digunakan sebagai ambang konversi. Pada
Octave, argumen kedua harus disertakan.
rgb2gray(RGB)

Nilai balik fungsi ini berupa citra biner
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?