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:

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
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
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
dan saya juga ada kirim email mas, mohon dibantu ya mas. terima kasih mas
Mas Adi, kalau suatu citra banyak noise nya, apakah berpengaruh juga pada histogramnya ? Apakah histogramnya akan berbeda dengan citra tanpa noise ? Thx
materi mengenai hal tersebut dapat dilihat pada halaman berikut
https://pemrogramanmatlab.com/2016/01/04/restorasi-citra-digital-menggunakan-matlab/
selamat siang mas Adi, mau tanya, untuk perbaikan kuaitas citra beras lebih baik menggunakan operasi apa ya mas?
terima kasih sebelumnya
bisa dicoba proses segmentasi, jika hasil segmentasi sudah baik, maka tidak perlu dilakukan proses perbaikan kualitas citra
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
Waalaikumsalam Thomi
Alhamdulillah, sama sama
Prinsip dari resize adalah menggunakan persamaan interpolasi linier
Maaf mas Adi, Ada contoh atau ebook mengenai interpolasi linier tidak ya mas?
trimakasih mas
materi mengenai interpolasi linier dapat dilihat pada halaman berikut ini
https://en.wikipedia.org/wiki/Bilinear_interpolation
Trimakasih banyak mas, nanti saya baca2
sama sama thomi
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
Materi ttg butterworth highpass filter bisa dilihat pada halaman berikut ini
https://pemrogramanmatlab.com/2016/01/04/restorasi-citra-digital-menggunakan-matlab/
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
Mas kalo bikin kelembutan Citra dengan 1 kernel dan ketajaman Citra dengan 1 kernel itu gimana? Terimakasih
hal tersebut dapat dilakukan menggunakan operasi konvolusi
mas,boleh tau ngak cara hitungan manual transformasi hough
kak kalo untuk deteksi bekas jerawat seperti bopeng, cocoknya pake ekstraksi apa ya
bisa menggunakan analisis bentuk, warna, dan tekstur
assalamulaikum mau tanya kalau peningkatan kualitas citra menggunakan transfromasi fourier diskrit bgmn?mohon di bantu krn ini lagi penelitian tentang itu
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
Itu gambar maspojok.bmp dibuat sendiri atau gmna pak? Bisa kirim gambarnya pak
Sekalian mau coba dipraktekin di matlab…
Terimakasih
Source code dan citra pada materi di atas bisa diperoleh melalui tokopedia sehingga bisa langsung dirunning dan dikembangkan
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
proses resize bisa divariasikan dan dicatat akurasi masing2 ukuran resize
hasil akurasi tertinggi bisa digunakan dalam implementasi sistem pengenalan
assalamualaikum mas,
sy mw nanya tentang perbaikan kualitas citra, apakah mas ada penjelasan tentang CLAHE ? terimakasih
Waalaikumsalam
Semoga ke depan terdapat materi mengenai CLAHE
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
assalamualaikum.wr.wb mas mau tanya apakah ada materi mas yang menjelaskan rekontruksi citra menggunakan metode rguralisasi tikhonov dan TSVD
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.
kenapa ada error Undefined function ‘conv2’ for input arguments of type ‘double’
and attributes ‘full 3d real’. ya?
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 ?
Source code lengkap bisa dibeli di tokopedia sehingga bisa dirunning dan dikembangkan
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
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
Selamat malam
Operasi titik bisa dicoba diimplementasikan untuk mendeteksi penyakit tanaman
Malam mas, saya mau tanya. Apa bisa membandingkan antara metode HPF dan FFT yang di gunakan dalam hal enhancement citra telapak tangan.
Malam
Bisa dicoba terlebih dahulu
Selamat malam mas, saya mau nanya citra apa yang bisa dilakukan perbaikan kualitas citra menggunakan metode multiscale retinex..?
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..
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
Waalaikumsalam
Contrast stretching dan histogram equalization bisa dicoba diimplementasikan
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
Waalaikumsalam
bisa dicoba diimplementasikan
dari telapak tangan untuk mereduksi noise pada citra digital telapak tangan ka. kalau ad mau dong sourcecode mathlab nya
citra foto telapak tangan lalu di reduksi noisenya menggunakan metode phase only correlation. gitu ka
Mas kalo perbaikan citra pada hasil screenshot lebih baik pakai metode apa ya?
Bisa menggunakan metode super resolusi
kak kok saya nyoba koding eror semua ya??
Source code lengkap bisa dibeli melalui tokopedia sehingga bisa langsung dirun tanpa error dan bisa dikembangkan lebih lanjut
Bagaimana j9ka kita menyisipkan binary masking pada kompresi jpeg, ?
Sebelum proses quantisi dibuat tabel maskingnya setelah itu diquantisasi.mohon sarannya