Selasa, 21 Mei 2019

PENGOLAHAN CITRA DIGITAL

Salah satu hal paling dasar yang perlu kita pahami sebelum menyelam lebih jauh ke dalam materi Computer Vision dan Digital Image Processing adalah pengertian tentang citra digital.
Apakah teman-teman pernah sadar, mata kita adalah salah satu anugerah yang sangat canggih? Coba teman-teman pikirkan baik-baik; ketika kita melihat, kita dapat dengan cepat mengenali suatu objek. Kita bisa dengan mudah membedakan bentuk objek, membedakan warnanya, bahkan kita dapat dengan cepat mengelompokkan objek tersebut. Kita bisa langsung mengatakan bahwa bola itu bundar, meja itu persegi panjang, rambut orang itu berwarna hitam, mobil itu berwarna merah.
Namun, ketika kita ‘berbicara’ dengan komputer tentang pemandangan tersebut, kita tidak bisa langsung bilang bola itu bundar, mobil itu berwarna merah, dan seterusnya. Tidak. Tetapi kita berbicara menggunakan bahasa yang lebih dimengerti komputer, yaitu angka-angka.
Komputer melihat pemandangan yang kita lihat sebagai matriks dua dimensi atau lebih, dimana setiap matriks merepresentasikan satu kanal (channel) warna. Setiap elemen matriks tersebut dinamakan piksel. Terdengar rumit? Tidak! Contohnya seperti gambar ini
sumber : Harry Quan di unsplash.com
Kita dengan jelas bisa menyimpulkan bahwa gambar tersebut adalah gambar mata. Bagaimana dengan komputer? Ini yang dilihat komputer :
Representasi gambar mata di atas dalam bentuk array. Array (1,1) sampai (32,13) pada channel merah dari gambar berukuran 1749 x 2619 x 3
Gambar di atas adalah elemen matriks (1,1) sampai (32,13) pada channel merah dari gambar di atas.
Apa maksudnya?
Pada umumnya, citra pada komputer direpresentasikan dalam bentuk matriks dan menggunakan model warna RGB. Model warna sebenarnya ada banyak, namun untuk layar komputer yang kita gunakan, lebih banyak menggunakan model warna RGB. Model warna RGB ini terdiri atas 3 channel warna, yaitu Red, Green, dan Blue. Range warna yang tersedia berkisar antara 0–255, semakin besar semakin terang (hal ini disebabkan layar mengadopsi pembuatan warna dengan metode aditif).
Lalu, bagaimana komputer dapat mengenali bahwa gambat tersebut adalah gambar mata?
Komputer dapat mengenali sebuah objek dengan menggunakan algoritma image recognition (disebut juga image classifier). Algoritma ini mengambil sebuah gambar atau beberapa bagian dari gambar sebagai input dan mengeluarkan label kelas.
Namun sebelum dapat mengenali gambar, algoritma image recognition ini harus mempelajari perbedaan dari kelas-kelas yang berbeda terlebih dahulu. Misal, dalam sebuah gambar pemandangan, komputer akan ‘belajar’, gambar pohon memiliki ciri-ciri seperti apa, bunga memiliki ciri-ciri seperti apa, anjing memiliki ciri-ciri seperti apa, dan seterusnya. Tentu saja ciri-ciri tersebut direpresentasikan dalam matematika.
Sebelum komputer menggunakan algoritma image recognition untuk mempelajari kelas-kelas tersebut, tentu ada beberapa proses yang harus dilakukan terlebih dahulu.
Hal ini disebabkan citra yang ada biasanya memiliki kekurangan atau penurunan kualitas yang disebabkan beberapa hal seperti pengaruh cahaya, noiseblur, dan lainnya. Akibatnya, informasi yang ada dalam sebuah citra menjadi kurang jelas atau hilang.
Maka dari itu, bidang studi atau ilmu pengolahan citra digital ini hadir untuk mempelajari bagaimana memproses citra sehingga menjadi citra yang kualitasnya lebih baik.
Pengolahan citra dikembangkan dengan tujuan untuk :
  1. Image Enhancement : memperbaiki atau meningkatkan kualitas tampilan citra
  2. Image Compression : mereduksi atau mengurangi ukuran file citra namun tetap mempertahankan citra.
  3. Image Restoration : memulihkan atau memperbaiki citra ke kondisi semula.
  4. Feature Extraction : mengekstraksi ciri atau fitur tertentu dari citra untuk dianalisis.
Selain itu, pengolahan citra juga dapat dikembangkan dan dimanfaatkan untuk kehidupan, contohnya :
  1. Bidang militer : pengolahan citra dapat dikembangkan untuk pelacakan target penembakan dengan menggunakan image recognition dan computer vision.
  2. Bidang Kedokteran atau Medis : dapat digunakan untuk analisis hasil scan anggota tubuh dengan menggunakan image recognition dan classification.
  3. Fotografi : dapat digunakan untuk mengolah foto. Software seperti Adobe Photoshop dan Adobe Lightroom memanfaatkan operas-operasi pengolahan citra seperti histogram, convolution, sharpening, dan masih banyak lagi untuk mengolah foto.

Pengolahan Citra Digital (Digital Image Processing) merupakan bidang ilmu yang mempelajari tentang bagaimana suatu citra itu dibentuk, diolah, dan dianalisis sehingga menghasilkan informasi yang dapat dipahami oleh manusia.
Sebelum mempelajari lebih lanjut mengenai pengolahan citra digital, kita perlu mengetahui definisi dari citra itu terlebih dahulu.
Citra merupakan fungsi dari intensitas cahaya yang direpresentasikan dalam bidang dua dimensi.
Berdasarkan bentuk sinyal penyusunnya, citra dapat digolongkan menjadi dua jenis yaitu citra analog dan citra digital. Citra analog adalah citra yang dibentuk dari sinyal analog yang bersifat kontinyu, sedangkan citra digital adalah citra yang dibentuk dari sinyal digital yang bersifat diskrit.
Citra analog dihasilkan dari alat akuisisi citra analog, contohnya adalah mata manusia dan kamera analog. Gambaran yang tertangkap oleh mata manusia dan foto atau film yang tertangkap oleh kamera analog merupakan contoh dari citra analog. Citra tersebut memiliki kualitas dengan tingkat kerincian (resolusi) yang sangat baik tetapi memiliki kelemahan di antaranya adalah tidak dapat disimpan, diolah, dan diduplikasi di dalam komputer.
Citra digital merupakan representasi dari fungsi intensitas cahaya dalam bentuk diskrit pada bidang dua dimensi. Citra tersusun oleh sekumpulan piksel (picture element) yang memiliki koordinat (x,y) dan amplitudo f(x,y). Koordinat (x,y) menunjukkan letak/posisi piksel dalam suatu citra, sedangkan amplitudo f(x,y) menunjukkan nilai intensitas warna citra. Representasi citra digital beserta piksel penyusunnya ditunjukkan pada Gambar 1 berikut ini.
Gambar 1. Citra dan piksel penyusunnya
Pada umumnya, berdasarkan kombinasi warna pada piksel, citra dibagi menjadi tiga jenis yaitu citra RGB, citra grayscale, dan citra biner. Citra pada Gambar 1 termasuk dalam jenis citra RGB truecolor 24-bit. Citra tersebut tersusun oleh tiga kanal warna yaitu kanal merah, kanal hijau, dan kanal biru.
Masing-masing kanal warna memiliki nilai intensitas piksel dengan kedalaman bit sebesar 8-bit yang artinya memiliki variasi warna sebanyak 2^8 derajat warna (0 s.d 255).
Pada kanal merah, warna merah sempurna direpresentasikan dengan nilai 255 dan hitam sempurna dengan nilai 0. Pada kanal hijau, warna hijau sempurna direpresentasikan dengan nilai 255 dan hitam sempurna dengan nilai 0. Begitu juga pada kanal biru, warna biru sempurna direpresentasikan dengan nilai 255 dan hitam sempurna dengan nilai 0.
Perintah MATLAB untuk menampilkan citra digital dan masing-masing kanal penyusunnya adalah sebagai berikut:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
clc; clear; close all; warning off all;
  
I = imread('lena_color_256.tif');
Red = I(:,:,1);
Green = I(:,:,2);
Blue = I(:,:,3);
I_Red = cat(3,Red,Green*0,Blue*0);
I_Green = cat(3,Red*0,Green,Blue*0);
I_Blue = cat(3,Red*0,Green*0,Blue);
  
figure, imshow(I);
figure, imshow(I_Red);
figure, imshow(I_Green);
figure, imshow(I_Blue);
Representasi citra RGB dan masing-masing kanal warna penyusunnya ditunjukkan pada Gambar 2.
Gambar 2. Representasi citra RGB dan kanal warna penyusunnya
Setiap piksel pada citra RGB, memiliki intensitas warna yang merupakan kombinasi dari tiga nilai intensitas pada kanal R, G, dan B. Sebagai contoh, suatu piksel yang memiliki nilai intensitas warna sebesar 255 pada kanal merah, 255 pada kanal hijau, dan 0 pada kanal biru akan menghasilkan warna kuning. Pada contoh lain, suatu piksel yang memiliki nilai intensitas warna sebesar 255 pada kanal merah, 102 pada kanal hijau, dan 0 pada kanal biru akan menghasilkan warna orange. Banyaknya kombinasi warna piksel yang mungkin pada citra RGB truecolor 24-bit adalah sebanyak 256 x 256 x 256 = 16.777.216. Representasi nilai intensitas piksel dengan kombinasi warna R, G, dan B ditunjukkan pada Gambar 3.
Gambar 3. Representasi piksel dengan kombinasi warna R, G, dan B
Jenis citra yang kedua adalah citra grayscale. Citra grayscale merupakan citra yang nilai intensitas pikselnya didasarkan pada derajat keabuan. Pada citra grayscale 8-bit, derajat warna hitam sampai dengan putih dibagi ke dalam 256 derajat keabuan di mana warna hitam sempurna direpresentasikan dengan nilai 0 dan putih sempurna dengan nilai 255. Citra RGB dapat dikonversi menjadi citra grayscale sehingga dihasilkan hanya satu kanal warna. Persamaan yang umumnya digunakan untuk mengkonversi citra RGB truecolor 24-bit menjadi citra grayscale 8-bit adalah
Grayscale = 0.2989*R + 0.5870*G + 0.1140*B
di mana
Grayscale adalah nilai intensitas citra grayscale,
R adalah nilai intensitas piksel pada kanal merah,
G adalah nilai intensitas piksel pada kanal hijau, dan
B adalah nilai intensitas piksel pada kanal biru.
Perintah MATLAB untuk mengkonversi citra RGB menjadi grayscale adalah:
1
2
I_Gray = rgb2gray(I);
figure, imshow(I_Gray);
Citra hasil konversi RGB menjadi grayscale ditunjukkan pada Gambar 4.
Gambar 4. Citra hasil konversi RGB menjadi grayscale
Jenis citra yang ketiga adalah citra biner. Citra biner adalah citra yang pikselnya memiliki kedalaman bit sebesar 1 bit sehingga hanya memiliki dua nilai intensitas warna yaitu 0 (hitam) dan 1 (putih). Citra grayscale dapat dikonversi menjadi citra biner melalui proses thresholding. Dalam proses thresholding, dibutuhkan suatu nilai threshold sebagai nilai pembatas konversi. Nilai intensitas piksel yang lebih besar atau sama dengan nilai threshold akan dikonversi menjadi 1. Sedangkan nilai intensitas piksel yang kurang dari nilai threshold akan dikonversi menjadi 0. Misalnya nilai threshold yang digunakan adalah 128, maka piksel yang mempunyai intensitas kurang dari 128 akan diubah menjadi 0 (hitam) dan yang lebih dari atau sama dengan 128 akan diubah menjadi 1 (putih).
Perintah MATLAB untuk mengkonversi citra grayscale menjadi citra biner adalah:
1
2
I_bw = im2bw(I_Gray);
figure, imshow(I_bw);
Citra hasil konversi grayscale menjadi biner ditunjukkan pada Gambar 5.
Gambar 5. Citra hasil konversi grayscale menjadi biner
Thresholding pada umumnya digunakan dalam proses segmentasi citra. Proses tersebut dilakukan untuk memisahkan antara foreground (objek yang dikehendaki) dengan background (objek lain yang tidak dikehendaki). Pada hasil segmentasi, foreground direpresentasikan oleh warna putih (1) dan background direpresentasikan oleh warna hitam (0). Pada kasus segmentasi pada satu citra saja, kita dapat menentukan nilai threshold dengan metode trial and error. Namun pada kasus segmentasi pada citra dengan jumlah yang banyak, dibutuhkan suatu metode untuk menentukan nilai threshold secara otomatis. Nilai threshold dapat diperoleh secara otomatis dengan menggunakan metode Otsu (1979).
Perintah MATLAB untuk melakukan thresholding dengan metode Otsu adalah:
1
2
3
thresh = graythresh(I_Gray);
I_bw_otsu = im2bw(I_Gray,thresh);
figure, imshow(I_bw_otsu);
Citra hasil thresholding menggunakan metode Otsu ditunjukkan pada Gambar 6.
Gambar 6. Citra hasil thresholding menggunakan metode Otsu

Tidak ada komentar:

Posting Komentar