Contoh berikut menunjukkan cara melakukan konversi dari
abuan ke dalam citra biner.
: kebiner.m
% KEBINER Digunakan untuk mengonversi file
Teori dan Aplikasi
onversikan citra berskala
abuan ke citra biner?Strategi yang dipakai yaitu dengan menerapkan suatu nilai
tersebut dipakai untuk
menentukan suatu intensitas akan dikonversikan menjadi 0 atau menjadi 1. Secara
(2.3)
onversi dari citra berskala
Mengenal Dasar Citra 35
% daun_gray.png ke citra biner
Img = imread('c:\Image\daun_gray.png');
[tinggi, lebar] = size(Img);
ambang = 210; % 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);
Akhir Program
Sebelum mencoba program di atas, akan dibahas dulu kode yang mendasari
program. Tanda % mengawali komentar.Semua tulisan dimulai dari tanda tersebut
hingga akhir baris tidak dianggap sebagai perintah, melainkan sebagai penjelas
bagi pembaca program. Kode
Img= imread('c:\Image\daun_gray.png');
merupakan perintah untuk membaca citra daun_gray.png. Hasilnya disimpan
diImg. Lalu,
[tinggi, lebar] = size(Img);
berguna untuk mendapatkan lebar dan tinggi citra.
Pernyataan
ambang = 210;
digunakan untuk menentukan nilai ambang bagi penentuan konversi suatu piksel
menjadi 0 atau 1. Nilai ambang berkisar antara 0 sampai dengan 255.
Pernyataan
for baris=1 : tinggi
for kolom=1 : lebar
36
Pengolahan Citra, Teori dan Aplikasi
ifImg(baris, kolom) >= ambang
Biner(baris, kolom) = 0;
else
Biner(baris, kolom) = 1;
end
end
end
menangani penentuan nilai 0 atau 1 pada citra biner untuk semua piksel dalam
citra (ditangani dengan dua buah for). Penentuan dilakukan melalui pernyataan if.
Dalam hal ini,
Img(baris, kolom)
menyatakan nilai intensitas piksel pada (baris, kolom).
Setelah
for baris=1 : tinggi
berakhir, maka Binerberisi citra biner. Selanjutnya, citra ditampilkan melalui
imshow(Biner);
Untuk menjalankan program di depan, berikan perintah
>>kebiner;
Hasilnya seperti berikut.
Mengenal Dasar Citra 37
Gambar 2.19Hasil konversi daun_gray.png ke bentuk biner
Gambar 2.20 memperlihatkan berbagai bentuk hasil konversi citra dengan
menggunakan berbagai nilai ambang.
38
Pengolahan Citra, Teori dan Aplikasi
Ambang = 210 Ambang = 160 Ambang = 130
Ambang = 110 Ambang = 100 Ambang = 70
Gambar 2.20Hasil konversi ke citra biner
dengan berbagai nilai ambang
Contoh-contoh yang telah dibahas memberikan gambaran tentang cara
mewujudkan sendiri konversi antarjenis citra. Hal tersebut tentu saja penting
untuk dipahami agar memudahkan di dalam mewujudkan sendiri penulisan
program seandainya menggunakan bahasa pemrograman yang lain.Namun,
sebagai penambah wawasan, sesungguhnya Octave menyediakan beberapa fungsi
untuk kepentingan konversi citra.Tabel 2.5 memperlihatkan dua fungsi penting
yang terkait dengan konversi citra.
Mengenal Dasar Citra 39
Tabel 2.5Fungsi 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
rgb2gray(RGB) Berguna untuk mengonversi citra berwarna
(RGB) ke citra berskala keabuan. Nilai balik
fungsi ini berupa citra berskala keabuan
Pada beberapa contoh yang akan dibahas pada bab-bab selanjutnya, dua fungsi
pada Tabel 2.5 akan digunakan dengan tujuan untuk menyederhanakan
permasalahan dalam menuliskan kode.
Agar terbiasa dengan kedua fungsi tersebut, berikut disajikan contoh
penggunaannya. Contoh pertama:
>>Img= imread('C:\Image\daun_gray.png');
>> BW = im2bw(Img, 0.6);
>>imshow(BW);
Hasilnya seperti berikut.
40
Pengolahan Citra, Teori dan Aplikasi
Gambar 2.21Hasil pembentukan citra biner melalui im2bw
Adapun contoh pemakaian rgb2gray:
>> RGB = imread('C:\Image\innsbruckcity.png');
>> Abu = rgb2gray(RGB);
>>imshow(Abu);
Hasilnya seperti berikut.
Mengenal Dasar Citra 41
Gambar 2.22 Hasil pembentukan citra berskala keabuan
melalui rgb2gray
2.9 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) ataupunlarik berdimensi
tiga (citra RGB).
Contoh:
>>Img = imread('C:\Image\daun_gray.png');
>>X = 255 Img;
>>imwrite(X, negatif_daun.png);
42
Pengolahan Citra, Teori dan Aplikasi
Perlu diketahui,
X = 255 Img;
digunakan untuk memperoleh citra negatif dari citra daun_gray.png. Setelah
imwrite dieksekusi,akan terbentuk negatif_daun.png pada folder kerja. Hasilnya
diperlihatkan pada Gambar 2.23.
Gambar 2.23Hasil penyimpanan citra negatif_daun.png
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 :
a) citra berwarna
Latihan
Mengenal Dasar Citra 43
b) citra berskala keabuan
c) citra biner
6. Jelaskan mekanisme untuk mengubah citra berwarna ke dalam citra
berskala keabuan.
7. Bagaimana prinsip untuk mengubah citra berskala keabuan ke citra biner?
8. Ubahlah innsbruckcity.png ke citra berskala keabuan dan kemudian
simpan dengan nama inns_gray.png.
9. Buatlah program untuk memproses citra daun_gray.png agar diperoleh
hasil seperti berikut.
10. 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?
11. 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?