Perbaikan Kualitas Citra


Tujuan perbaikan kualitas citra (image enhancement) adalah untuk menonjolkan suatu ciri tertentu dalam citra tersebut, ataupun untuk memperbaiki aspek tampilan.

Proses ini biasanya bersifat eksperimental, subjektif, dan bergantung pada tujuan yang hendak dicapai. Operasi pengolahan citra untuk meningkatkan kualitas citra antara lain adalah:

1.   Operasi Titik
Operasi titik dalam image enhancement dilakukan dengan memodifikasi histogram citra masukan agar sesuai dengan karakteristik yang diharapkan. Teknik image enhancement melalui operasi titik antara lain adalah intensity adjustment dan histogram equalization.

Intensity Adjustment
Intensity adjustment bekerja dengan cara melakukan pemetaan linear terhadap nilai intensitas pada histogram awal menjadi nilai intensitas pada histogram yang baru.

Contoh1 (increase the contrast of an image):
Citra rice.tif memiliki nilai kekontrasan yang rendah. Berdasarkan histogramnya, dapat diketahui bahwa citra ini tidak memiliki piksel dengan intensitas di bawah 40 dan di atas 204. Untuk memperbaikinya, kita dapat memetakan histogram secara linear sehingga diperoleh sebuah citra baru yang memiliki rentang histogram antara 0 hingga 255. Contoh perintah untuk melakukan peningkatan kontras adalah:

I=imread('rice.png');
J=imadjust(I,[40/255 204/255],[0/255 255/255]);
figure,imshow(I);
figure,imhist(I);
figure,imshow(J);
figure,imhist(J);

Hasil yang diperoleh ditunjukkan pada Gambar 2.1.

Contoh2 (decrease the contrast of an image):
Citra cameraman.tif memiliki nilai kekontrasan yang tinggi. Dengan menurunkan kontras dari citra tersebut, jas yang dikenakan oleh cameraman akan tampak lebih detail. Contoh perintah untuk melakukan penurunan kontras adalah:

I=imread('cameraman.tif');
J=imadjust(I,[0 0.2],[0.5 1]);
figure,imshow(I);
figure,imhist(I);
figure,imshow(J);
figure,imhist(J);

 Hasil yang diperoleh ditunjukkan pada Gambar 2.2.

Histogram Equalization
Histogram equalization bertujuan untuk menghasilkan citra keluaran yang memiliki nilai histogram yang relatif sama. Contoh perintah untuk melakukan histogram equalization adalah:

I=imread('mandril_gray.tif');
J=histeq(I);
figure,imshow(I);
figure,imhist(I);
figure,imshow(J);
figure,imhist(J);

Hasil yang diperoleh ditunjukkan pada Gambar 2.3.

2.     Operasi Spasial
Operasi spasial dalam pengolahan citra digital dilakukan melalui penggunaan suatu kernel konvolusi 2-dimensi. Metode image enhancement dalam operasi spasial antara lain low-pass filtering dan high-pass filtering.

Low-pass Filtering
Low-pass filtering adalah proses filter yang melewatkan komponen citra dengan nilai intensitas yang rendah dan meredam komponen citra dengan nilai intensitas yang tinggi. Low pass filter akan menyebabkan citra menjadi lebih halus dan lebih blur.

Aturan kernel untuk low-pass filter adalah:
1. Semua koefisien kernel harus positif
2. Jumlah semua koefisien kernel harus sama dengan 1
Contoh kernel  yang dapat digunakan pada low-pass filtering adalah

Low-pass filtering menggunakan kernel (iii) disebut juga neighborhood averaging. Contoh perintah untuk melakukan low-pass filtering adalah:

I=imread('bicycle.tif');
lpf1=[1/16 1/8 1/16;1/8 1/4 1/8;1/16 1/8 1/16];
lpf2=[1/10 1/10 1/10;1/10 1/5 1/10;1/10 1/10 1/10];
lpf3=[1 1 1;1 1 1;1 1 1]/9;
J1=uint8(conv2(double(I),lpf1,'same'));
J2=uint8(conv2(double(I),lpf2,'same'));
J3=uint8(conv2(double(I),lpf3,'same'));
figure,imshow(I);
figure,imshow(J1);
figure,imshow(J2);
figure,imshow(J3);

Hasil yang diperoleh ditunjukkan pada Gambar 2.4.

Median Filtering
Median filter merupakan salah satu jenis low-pass filter, yang bekerja dengan mengganti nilai suatu piksel pada citra asal dengan nilai median dari piksel tersebut dan lingkungan tetangganya. Dibandingkan dengan neighborhood averaging, filter ini lebih tidak sensitif terhadap perbedaan intensitas yang ekstrim. Contoh perintah untuk melakukan median filtering terhadap citra yang terkontaminasi noise adalah:

I=imread('eight.tif');
IN=imnoise(I,'salt & pepper',0.02);
J1=medfilt2(IN,[3 3]);
J2=medfilt2(IN,[5 5]);
figure,imshow(I);
figure,imshow(IN);
figure,imshow(J1);
figure,imshow(J2);

Hasil yang diperoleh ditunjukkan pada Gambar 2.5.

High-pass Filtering
Berkebalikan dengan low-pass filtering, high-pass filtering adalah proses filter yang melewatkan komponen citra dengan nilai intensitas yang tinggi dan meredam komponen citra dengan nilai intensitas yang rendah. High pass filter akan menyebabkan tepi objek tampak lebih tajam dibandingkan sekitarnya.
Aturan kernel untuk high-pass filter adalah:
1. Koefisien kernel boleh positif, negative, atau nol
2. Jumlah semua koefisien kernel adalah 0 atau 1
Contoh kernel  yang dapat digunakan pada high-pass filtering adalah

I=imread('girl_gray.tif');
hpf1=[-1 -1 -1;-1 8 -1;-1 -1 -1];
hpf2=[ 0 -1 0;-1 5 -1; 0 -1 0];
hpf3=[ 1 -2 1;-2 5 -2; 1 -2 1];
J1=uint8(conv2(double(I),hpf1,'same'));
J2=uint8(conv2(double(I),hpf2,'same'));
J3=uint8(conv2(double(I),hpf3,'same'));
figure,imshow(I);
figure,imshow(J1);
figure,imshow(J2);
figure,imshow(J3);

Hasil yang diperoleh ditunjukkan pada Gambar 2.6.

3.     Operasi Transformasi
Proses image enhancement berbasis transformasi citra dilakukan dengan:
a. mentransformasi domain citra asal ke dalam domain lain yang sesuai bagi proses enhancement
b. melakukan proses enhancement pada domain baru tersebut
c. mengembalikan citra ke dalam domain spasial untuk ditampilkan/diproses lebih lanjut

Salah satu metode transformasi yang populer dalam aplikasi pengolahan citra digital adalah Fast Fourier Transform (FFT). Transformasi ini memindahkan informasi citra dari domain spasial ke dalam domain frekuensi, yaitu dengan merepresentasikan citra spasial sebagai suatu penjumlahan eksponensial kompleks dari beragam frekuensi, magnituda, dan fasa. Setelah dilakukan proses enhancement dalam domain frekuensi, informasi citra dikembalikan ke domain spasial. Contoh perintah untuk melakukan low-pass filtering dan high-pass filtering melalui FFT adalah:

I=imread('cameraman.tif');
IF=fft2(double(I));
mask_high=double(imread('maskpojok.bmp'));
mask_low=1-mask_high;
IFH=(IF.*mask_high);
IFL=(IF.*mask_low );
hasil_high=abs(ifft2(IFH));
hasil_low=abs(ifft2(IFL));
figure,imagesc(I),colormap gray,colorbar,axis image;
figure,imagesc(log(abs(IF +1)),[0 17]),colormap hot,colorbar,axis image;
figure,imagesc(hasil_high),colormap gray,colorbar,axis image;
figure,imagesc(log(abs(IFH+1)),[0 17]),colormap hot,colorbar,axis image;
figure,imagesc(hasil_low ),colormap gray,colorbar,axis image;
figure,imagesc(log(abs(IFL+1)),[0 17]),colormap hot,colorbar,axis image;

Hasil yang diperoleh ditunjukkan pada Gambar 2.7.

Penerapan metode perbaikan kualitas citra bisa dilihat pada video tutorial berikut ini:Save

  1. Mas adi, kalo untuk perbaikan kualitas citra pada iris mat, baiknya pakek apa ya ?

    • Proses perbaikan kualitas citra bersifat opsional dilakukan dengan metode trial & error
      Proses tersebut bisa dilakukan pada domain spasial maupun pada domain frekuensi

  2. Selamat siang mas, mohon pencerahan dan petunjuk mas, saya sudah coba menggunakan rumus mas tentang perbaikan citra dari operasi titik, histogram tidak pernah jalan programnya apakah ada yg salah dengan coding yg saya gunakan ya, krn lokasi dan gambar sesuai dengan direktorinya mas. terima kasih mas

    • selamat siang juga mas edy,
      bisa dicek terlebih dahulu apakah matlab yang digunakan sudah terinstal image processing toolbox atau belum
      untuk mengecek, pada command window silakan diketik perintah ver

  3. terima kasih atas sarannya mas adi, dan sudah saya cek ternyata image processing toolbox nya sudah terinstal mas dan saya memakai matlab 2013 mas, mohon pencerahan mas. terima kasih mas

  4. dan saya juga ada kirim email mas, mohon dibantu ya mas. terima kasih mas

  5. Mas Adi, kalau suatu citra banyak noise nya, apakah berpengaruh juga pada histogramnya ? Apakah histogramnya akan berbeda dengan citra tanpa noise ? Thx

  6. selamat siang mas Adi, mau tanya, untuk perbaikan kuaitas citra beras lebih baik menggunakan operasi apa ya mas?
    terima kasih sebelumnya

  7. Assalamuallaikum mas Adi,

    trimakasih banyak mas telah membantu dan membembing dalam penelitian saya, Alhmdulillah penelitian saya sudah selese.

    mas, saya mau tanya
    prinsip dari resize citra itu bagaimana ya mas?

    trimakasih mas

  8. Maaf mas Adi, Ada contoh atau ebook mengenai interpolasi linier tidak ya mas?
    trimakasih mas

  9. Trimakasih banyak mas, nanti saya baca2

  10. kalau disini kan hanya dijelaskan highpass filtering mas lalu yang saya tanyakan bagaimana mengenai Butterworth Highpass Filters itu? bagaimana source code matlab nya?
    terima kasih

  11. assalamualaikum..
    mas mau tanya yang tentang operasi transformasi fungsi gambar maskpojok itu buat apa ya?
    dan perbedaan low-high pass pada operasi transformasi apa sama dengan operasi spasia?
    terima kasih mas
    mohon bantuanya

    • waalaikumsalam amiliya emil
      maskpojok merupakan kernel yg digunakan sebagai masking dalam filter pada domain frekuensi
      perbedaannya ada pada domain,
      jika operasi transformasi dilakukan pada domain frekuensi, sedangkan operasi spasial dilakukan pada domain spasial

  12. Mas kalo bikin kelembutan Citra dengan 1 kernel dan ketajaman Citra dengan 1 kernel itu gimana? Terimakasih

  13. johniepasaribu

    mas,boleh tau ngak cara hitungan manual transformasi hough

  14. kak kalo untuk deteksi bekas jerawat seperti bopeng, cocoknya pake ekstraksi apa ya

  15. Indah Puspitasari

    assalamulaikum mau tanya kalau peningkatan kualitas citra menggunakan transfromasi fourier diskrit bgmn?mohon di bantu krn ini lagi penelitian tentang itu

  16. mas kalo mau nampilin waktu proses sama informasi atau detail gambarnya gimana yah?

    • untuk menampilkan waktu proses bisa menggunakan perintah tic toc
      sedangkan untuk menampilkan informasi atau detail citra bisa menggunakan perintah imfinfo

  17. Itu gambar maspojok.bmp dibuat sendiri atau gmna pak? Bisa kirim gambarnya pak
    Sekalian mau coba dipraktekin di matlab…
    Terimakasih

  18. Hello kak.. Maaf nih mau tanya saya kan punya citra awal ukuran 960×1280 untuk deteksi nama citra.. Kemudian saya resize citra tersebut menjadi 100×100 ternyata deteksi tersebut baik.. Tapi kenapa saat sya ganti nilai resizenya menjadi 120×160 (citra awal diperkecil 8x) ko malah deteksi nama citranya banyak yg salah ya.. Heee mohon bimbingannya

  19. assalamualaikum mas,
    sy mw nanya tentang perbaikan kualitas citra, apakah mas ada penjelasan tentang CLAHE ? terimakasih

  20. anastasya sembiring

    hallo kak saya mau bertanya mengenai perbaikan citra gambar lebih baik menggunakan metode apa ya kak, menurut kakak 🙂
    terus kalau misalnya saya mau buat tugas akhir bagusnya ambil objek gambar apa ya kak?
    terimakasih kakak 🙂

    • Hallo anastasya sembiring
      Ada cuku banyak metode perbaikan kualitas citra baik dalam domain spasial maupun frekuensi
      Citra yg dapat digunakan antara lain adalah citra yg terkontaminasi derau seperti citra yg diakuisisi oleh pesawat radiodiagnostik, citra satelit/landsat, citra yg kurang baik dalam proses akuisisinya

  21. assalamualaikum.wr.wb mas mau tanya apakah ada materi mas yang menjelaskan rekontruksi citra menggunakan metode rguralisasi tikhonov dan TSVD

  22. kak mau tanya dong caranya kalau citra bergambar di smothing haruss tetep pakai nois ya padahal gambarnya sendiri udah noisnya untuk menyamarkan noisnya sendiri tampa diberi nois lagi gimana ya… minta tlong share solusinya.

  23. kenapa ada error Undefined function ‘conv2’ for input arguments of type ‘double’
    and attributes ‘full 3d real’. ya?

  24. Mau nanya bang. Setiap program low filter yang dieksekusi, keluar terus error Undefined function ‘conv2’ for input arguments of type ‘double’
    and attributes ‘full 3d real’. Bagaimana solusinya bg ?

  25. mas mau tanya, bagaimana cara operasi titik intensity adjustment untuk gambar RGB, apakah sama caranya untuk format grayscale yang sudah dijelaskan ini?

    • Pada prinsipnya sama saja, jika pada citra grayscale operasi dilakukan terhadap komponen grayscale, sedangkan pada citra rgb dilakukan terhadap komponen r, g, dan b

  26. Selamat malam mas, saya ingin bertanya,
    Jika saya ingin mengekstraksi gambar RGB penyakit tanaman untuk diolah (diklasifikasikan dengan metode fuzzy), apakah perlu dibuat menjadi Grayscale dlu saat enhanctment menggunakan operasi titik? ekstraksi yang diinginkan meliputi kontras, korelasi, energi, homogenitas, rata-rata, variansi, standar deviasi, skeunes, kurtosis dan entropi.
    Mohon pencerahannya, Terimakasih

  27. Malam mas, saya mau tanya. Apa bisa membandingkan antara metode HPF dan FFT yang di gunakan dalam hal enhancement citra telapak tangan.

  28. Rizqi Hidayat Tanjung

    Selamat malam mas, saya mau nanya citra apa yang bisa dilakukan perbaikan kualitas citra menggunakan metode multiscale retinex..?

  29. Assalamualaikum mas,sya mau nanya nih Ada gak metode yang bisa kita terapkan untuk menjernihkan kembali Gambar yang sudah kita perkecil,kan biasa jika kita mengkompresi gambar akan terlihat sama dari yg terbesar ke yg terkecil akan tetapi jika disamakan dimensinya maka gambar yag diperkecil akan mulai memunculkan kotak pikselnya mas,mohon penjelasannya juga yah..

  30. Assalamualaikum mas, saya mau nanya kalo image enhancement yang pas buat dijadiin metode di face recognition apa ya mas ? Dengan tambahan pake Jaringan Saraf Tiruan, kira kira apa ya mas ? Mohon penjelasan nya juga mas hehe… Makasih mas

  31. Assalamualikum. ka mau tanyaa kalau reduksi noise citra digital palm print menggunakan phase only correlation itu bisa ga sih? ada source codenya ga? mau dong

  32. Mas kalo perbaikan citra pada hasil screenshot lebih baik pakai metode apa ya?

  33. kak kok saya nyoba koding eror semua ya??

  34. Bagaimana j9ka kita menyisipkan binary masking pada kompresi jpeg, ?

  35. Sebelum proses quantisi dibuat tabel maskingnya setelah itu diquantisasi.mohon sarannya

Leave a comment