Pengenalan Dasar
Citra
Representasi Citra Digital
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
Digitalisasi citra biner 8x8 piksel untuk memperlihatkan bentuk piksel ideal
Jangkauan nilai pada citra keabuan
Kompon en warna Bit per Piksel Jangkaua n Penggunaan 11 0-1 Citra biner: dokumen faksimili
8 0-255 Umum: foto dan hasil pemindai
12 0-4095 Kualitas tinggi: foto dan hasil pemindai
14 0-16383 Kualitas profesional: foto dan hasil pemindai
Jangkauan nilai pada citra berwarna
Kompone
n Warna
Bit per
Piksel
Jangkauan
Penggunaan
3
24
0-1
RGB umum
36
0-4095
RGB kualitas tinggi
42
0-16383
RGB
kualitas
profesional
Kuantisasi citra dengan
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.
Efek resolusi berdasar jumlah piksel pada citra
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
Daftar format file gambar yang bisa dibaca oleh imread Format Gambar Eksten si Keterangan
TIFF .tif, .tif Tagged Image File Format merupakan format citra yang mula-mula dibuat boleh Aldus. Kemudian, dikembangkan oleh Microsoft dan terakhir oleh Adobe.
JPEG .jpg, .jpeg
Joint Photographics Expert Group adalah format citra yang 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
>>
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);
Menampilkan Citra
Citra dapat ditampilkan dengan mudah melalui fungsi imshow. Contoh berikut digunakan untuk menampilkan citra yang terdapat di Img:
>> imshow(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
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;
Mengenal Jenis Citra
Ada tiga jenis citra yang umum digunakan dalam pemrosesan citra.
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
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
Citra berwarna dan representasi warnanya.
Setiap piksel dinyatakan dengan nilai R, G,
dan B
Catatan Perlu diketahui, sebuah warna tidak hanya dinyatakan
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 =
Hasil pembacaan citra berwarna
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);
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
Citra Biner
Contoh berikut menunjukkan cara membaca dan menampilkan citra biner.
>> Img = imread('c:\Image\daun_bin.tif'); >> imshow(Img);
>>
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.
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)) + ...
0.1141 * double(Img(:,:,3)));
>>
imshow(Abu); Catatan Tanda … menyatakan bahwa perintah pada baris tersebut masih mempunyai lanjutan 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).
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
Hasil konversi daun.tif ke bentuk biner
Untuk menjalankan program di depan, berikan perintah
Fungsi yang disediakan
Octave
untuk kepentingan
konversi ke aras keabuan
Fungsi Kegunaan
im2bw(I, level)
im2bw(RGB, level)
Berguna untuk mengonversikan citra
berskala 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
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);
Adapun contoh pemakaian rgb2gray:
>> RGB =
imread('C:\Image\innsbruckcity.png');
>> Abu = rgb2gray(RGB);
>> imshow(Abu);
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;
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
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