Pengolahan Citra Digital


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:

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:

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:

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:

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

File source code lengkap beserta citra pada pemrograman di atas dapat diperoleh melalui halaman berikut ini: Source Code MATLAB

Penjelasan detail mengenai representasi citra digital bisa dilihat pada video tutorial berikut ini:

Tutorial Lengkap Pemrograman MATLAB:

TutorialVideoData
001Representasi Citra Digitaldownload
002Deteksi Tepi Citra Digitaldownload
003Klasifikasi Citra Digital Berdasarkan Bentukdownload
004Segmentasi Citra Grayscale Dengan Metode K-means Clusteringdownload
005Deteksi Kulit Berdasarkan Warnadownload
006Menghitung Luas Tumor Otak Pada Citra MRIdownload
007Segmentasi Citra Bakteri Tuberkulosisdownload
008Thresholding Citra Digitaldownload
009Jaringan Syaraf Tiruan Untuk Klasifikasi Citra Daun (script)download
010Jaringan Syaraf Tiruan Untuk Klasifikasi Citra Daun (GUI)download
011Klasifikasi Citra Buah Apel Menggunakan Algoritma K-NN (script)download
012Klasifikasi Citra Buah Apel Menggunakan Algoritma K-NN (GUI)download
013Deteksi Warna Pada Ruang Warna HSVdownload
014Menghitung Luas Objek Pada Citra Digitaldownload
015Klasifikasi Citra Buah Menggunakan Algoritma LDA (script)download
016Klasifikasi Citra Buah Menggunakan Algoritma LDA (GUI)download
017Klasifikasi Sayuran Menggunakan Algoritma Naive Bayes (script)download
018Klasifikasi Sayuran Menggunakan Algoritma Naive Bayes (GUI)download
019Analisis Tekstur Menggunakan metode GLCMdownload
020Segmentasi Citra Thorax Menggunakan Metode Active Contourdownload
021Segmentasi Citra Thorax Menggunakan Metode Thresholdingdownload
022Jaringan Syaraf Tiruan Untuk Prediksi Curah Hujandownload
023Klasifikasi Citra Bunga Menggunakan Algoritma SVM (script)download
024Klasifikasi Citra Bunga Menggunakan Algoritma SVM (GUI)download
025Deteksi Kematangan Buah Sawit Menggunakan Algoritma SOM (script)download
026Deteksi Kematangan Buah Sawit Menggunakan Algoritma SOM (GUI)download
027Membuat Grafik Sinus dan Cosinus (App Designer)no data
028Membuat Grafik Gerak Parabola (App Designer)no data
029Histogram Citra Digital (App Designer)download
030Restorasi Citra Digital (App Designer)download
031Meningkatkan Contrast & Brightness Citra Digital (App designer)download
032Pre Processing Pada Citra Digital (App Designer)download
033Aplikasi Konversi Satuan Suhu (App Designer)no data
034Klasifikasi Citra Daun Jeruk Menggunakan Algoritma SVM (script)download
035Klasifikasi Citra Daun Jeruk Menggunakan Algoritma SVM (App Designer)download
036Segmentasi Citra Daun Yang Berpenyakitdownload
037Deteksi Objek Dengan Metode Background Subtractiondownload
038Deteksi Lingkaran Menggunakan Transformasi Houghdownload
039Deteksi Objek Bergerak Menggunakan Metode Background Subtractiondownload
040Pengolahan Video Untuk Mendeteksi Warna Kulitdownload
041Klasifikasi Spesies Bunga Iris Menggunakan Algoritma K-NNdownload
042Klasifikasi Bunga Iris Menggunakan Algoritma K-Means Clusteringdownload
043Klasifikasi Spesies Bunga Iris Menggunakan Algoritma JSTdownload
044Penerapan Algoritma Hierarchical Clusteringno data
045Logika Fuzzy Untuk Sistem Pengatur Kecepatan Mesin (Script)no data
046Logika Fuzzy Untuk Sistem Pengatur Kecepatan Mesin (App Designer)no data
047Klasifikasi Biji Kopi Menggunakan Jaringan Syaraf Tiruan (script)download
048Klasifikasi Biji Kopi Menggunakan JST (App Designer)download
049Klasifikasi Ikan Koi Menggunakan Algoritma ANFIS (Script)download
050Klasifikasi Ikan Koi Menggunakan Algoritma ANFIS (App Designer)download
051Menghitung Diameter Kanker Pada Citra Mammographydownload
052Klasifikasi Beras Menggunakan Jaringan Syaraf Tiruan (Script)download
053Klasifikasi Beras Menggunakan Jaringan Syaraf Tiruan (App Designer)download

Posted on July 26, 2017, in Pengolahan Citra and tagged , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , . Bookmark the permalink. 32 Comments.

  1. Kak, buat contoh kasus naive bayes dong..
    gimna caranya ngolah data numerik sma kategori dari excel yg banyak kolom sama baris nya pake naivebayes..
    sklian contoh kodingnya 😇

  2. Untuk klasifikasi citra menggunakan algoritma Naive Bayes dapat dilihat pada materi berikut ini

    Naive Bayes

  3. Mas adi, pada ekstraksi ciri tekstur dengan orde pertama ataupun orde kedua,

    Misalnya saya menggunakan ciri orde pertama,
    Apakah semua ciri-ciri orde pertama yang di Ekstrak/digunakan, mas ?

    Soalnya, salah satu Jenis yang akan di deteksi, jumlah Gambar nya,tidak sama dengan jumlah Gambar yang lain, mas.

    Minta sarannya mas adi.

    • Untuk parameter ciri yang digunakan bisa semua ciri orde pertama atau kedua
      bisa juga sebagian
      penentuan apa saja ciri yang sebaiknya digunakan dapat dilakukan dalam tahapan feature selection atau bisa juga dengan metode trial & error

    • mas adi, mohon maaf mas kalau saya banyak bertanya,

      Kalau meng-Ekstrak image, jumlah image di setiap jenis, harus sama ya mas ?
      kalau misalnya jumlah image di setiap jenis tidak sama, ada pengaruhnya gk mas ?

    • boleh abed
      dalam penelitian pengolahan citra terkadang memang tidak selalu jumlah citra pada setiap kelas harus sama
      boleh berbeda-beda

  4. terima kasih mas sebelumnya.

    berarti jumlahnya, boleh tidak sama.

    soalnya mas, saya liat kasus-kasus dengan metode JST pada wordpress mas, jumlah Jenis image nya, sama semua.
    saya pikir akan berpengaruh jika Jumlah Jenisnya tidaklah sama.

    sekali lagi terima kasih banyak ya mas adi.

  5. Mas Adi saya mau bertanya,
    bagaimana caranya jika saya ingin mengekstrak ciri dari objeknya saja ? jadi yang dihitung hanya objek(foreground) sedangkan backgroundnya tidak terhitung.
    terimakasih

  6. Mas mau tentang ekstraksi ciri intensity of character dan mark direction

  7. mas tolong buat contoh quantization uniform pada rgb image dong 🙂

    thankyou sebelumnya

  8. mas, apa efek CMYK bisa diterapkan juga di Matlab ?

  9. Apa saya bisa menerapkan untuk skripsi saya mas adi ? mohon sarannya

  10. Mas adi maaf mau tanya, misalnya kita foto orang kemudian kita ingin tau tinggi orang tersebut dari hasil fotonya menggunakan apa ya? Terima kasih

  11. apakah ukuran suatu gambar mempengaruhi performa suatu program PCD (Pengolahan Citra Digital)?

  12. Mas Adi, ijin bertanya, kenapa ukuran gambar sangat mempengaruhi performa dari program PCD yang kita buat ya?

  13. Bang Adi, ijin Bertanya , arti dari Mean filter itu apa bang sama minta contohnya bang
    makasih bang..

  1. Pingback: IMPLEMENTASI GRAFIK KOMPUTER & PENGOLAHAN CITRA | Just a pink lover

  2. Pingback: TUGAS PERTEMUAN KELIMA – PENGANTAR TEKNOLOGI INFORMASI

  3. Pingback: PENGOLAHAN CITRA | Fachri Fachrezisyah Putra

  4. Pingback: PENGOLAHAN CITRA | Fachri Fachrezisyah Putra

Leave a reply to ShuffleRose Cancel reply