Kamis, 19 Januari 2012

Image processing



Sebelumnya hai dear... (g pake diary ntar gw diare bneran deh)

Asalamualaikum, sebetulnya g tau kenapa. Ga ada angin, g ada hujan ane pengen ngebahas sedikit masalah image processing "gan" (shorten from "juragan").

Hari2 ini, kulalui dengan kegundahan hati. Ceileee,  temen ane lg pada sibuk Tugas Akhir nih gan. Sebetulnya ane pengen ikutan daftar sidang juga tapi g taunya, belum bisa mungkin ane g rejeki ya.., blm diberi kesempatan u sidang. (ehm curhat dikit). Tapi gpp lah insya Allah, Allah pasti beri keputusan yang terbaik. amiiin

G tau kenapa meski sudah mencoba mengikhlaskan, tapi masih ada rasa nyesek di hati tiap ada anak2 yang bawa buku TA, almamater di bulan Januari. Hufttt.... So sebagai gantinya gan ane ngebahas masalah Poto2 narsis ane... hahahahah :D

Look at my picture above (* nunjuk ke atas ^^<)
Ini bukan sembarang poto lo, coz ane bru beli baju bola n kaca mata John lenon gan (gt sih kata yang jualan) ga penting banget. So, kenapa??  langsung deh ceprat cepret (narsis abis). Nah, poto2 ini awalnya standard gt gan namun menggunakan image processing bisa menjadi kombinasi seperti di atas.

soft ware yang digunakan apa??:
kalau agan menanyakan pasti software dasar image processing yang biasa ane gunain:
1. paint + word
2. corel draw
3. Adobe pothoshop
4. Perpaduan ketiganya
5. Ini untuk sekedar menghasilkan image yang enak dilihat namun untuk menghasilkan image yang benar-benar pas dan terukur parameter hitam putih, keakuratannya dan pixelnya maka yang biasa digunakan adalah program Matlab. Salah satunya Matlab yang biasa digunakan temen ane gan Matlab R2009a

Btw ngomong2 masalah image processing jadi teringat beberapa mata kuliah di kampus gan.  menginjak pembahasan masalah image processing ane akan langsung ngebahas beberapa hal tentang pixel dan transformasi2 yang ada.

Pixel itu setahu ane dalam mata kuliah PSM itu adalah satuan terkecil dari gambar.. pixel dibagi menjadi dua yaitu pixel hitam putih (Black n white), Gray scale , RGB dll. Semakin lengkap komponen atau degradasi dari sebuah pixel maka akan semakin bagus juga hasil sebuah gambar.

Ada beberapa transformasi yang biasa digunakan temen2 ane gan klo mereka lg ngerjain TA
1. Transformasi wavelet
2. Transformasi fourier (Mungkin g sih???) kayaknya iya deh ini kan untuk sinyal digital

hmmm untuk beberapa proses pengolahan gambar biasanya klo temen2 ane lagi TA digunakanlah image processing untuk pendeteksi plat nomer, jumlah antrian sampe2 ada yang untuk pendeteksi jerawat.. siip g tuh...

Nah gambar2 narsis diatas adalah salah satu process sotoshop yang biasanya temen2 ane gunakan gan klo meereka mau ngolah data TA biar hasilnya pas n akurat. YA namanya jg orang usaha gan yang penting kan halaal n g boong.

Untuk menampilkan mode siang tinggal di brightnessin

Untuk menampilkan malam tinggal di contrast n bright nessnya dikurangin

Untuk dapet sore hari tinggal di sephia in

Untuk dapet model hujan / kabut tinggal di artistic effect yang model paint or dust..

gampangkan... heheheh

By the way TA (Tugas akhir) itu banyak seninya. Mau pengolahan sinyal, jaringan seperti ane gan yang ublek2 wimax atau antena atau mikro yang mrogram2 altium semua ada seninya tersendiri asal anda tidak beli TA seperti beberapa kasus yang tinggal bayar n asal jadi...

Ingat ST anda jg patut dipertanggung jawabkan lho hehehehh :D

NB : (Semua tulisan murni hasil pikirang ane gan jd jangan ragu tapi was2 lah karena mungkin aja agan2 tersesat setelah baca tulisan ini wkwkwkwk :D)

Ga2 sebetulnya sedikit pemahaman ane tentang image processing dr mata kuliah PSM (Pengolahaan Sinyal Multimedia), PSD (Pengolahan Sinyal digital) dan NGN (Next Generation Network Mata kuliah copas google hahahah )

Karena ada Rio yang protes krn kurang rinci oke deh gan ane tambahin biar rinci cekidot

Image processing merupakan proses pengolahan dan analisis citra yang banyak melibatkan persepsi visual misalnya gabungan pixel2 yang membentuk sebuah gambaran. Proses ini mempunyai ciri adanya pixel/ gambar masukan dan hasil keluaran yang berbentuk citra.

Istilah pengolahan citra digital secara umum didefinisikan sebagai pemrosesan citra dua dimensi dengan komputer. Dalam definisi yang lebih luas, pengolahan citra digital juga mencakup semua data dua dimensi. Citra digital adalah barisan bilangan nyata maupun kompleks yang diwakili oleh bit-bit tertentu.
Umumnya citra digital berbentuk persegi panjang atau bujur sangkar (pada beberapa sistem pencitraan ada pula yang berbentuk segienam) yang memiliki lebar dan tinggi tertentu. Ukuran ini biasanya dinyatakan dalam banyaknya titik atau piksel sehingga ukuran citra selalu bernilai bulat. Setiap titik memiliki koordinat sesuai posisinya dalam citra. Koordinat ini biasanya dinyatakan dalam bilangan bulat positif, yang dapat dimulai dari 0 atau 1 tergantung pada sistem yang digunakan. Setiap titik juga memiliki nilai berupa angka digital yang merepresentasikan informasi yang diwakili oleh titik tersebut.
Format data citra digital berhubungan erat dengan warna. Pada kebanyakan kasus, terutama untuk keperluan penampilan secara visual, nilai data digital merepresentasikan warna dari citra yang diolah. Format citra digital yang banyak dipakai adalah Citra Biner (monokrom), Citra Skala Keabuan ( gray scale ), Citra Warna ( true color ), dan Citra Warna Berindeks.
Oke gan ini sedikit ane tambahin process matlabnya dari jurnal
http://elib.unikom.ac.id/download.php?id=42799
Dalam bidang pengolahan citra, istilah citra mengacu pada suatu fungsi intensitas dalam bidang dua dimensi. Pemrosesan citra menggunakan komputer membutuhkan citra digital sebagai masukannya. Oleh karena itu, kita mengenal beberapa macam format citra digital, yang masing-masing memiliki format penyimpanan dan pembacaan data yang berbeda-beda.
Dengan menggunakan toolbox image processing di Matlab, proses pembacaan citra dapat dilakukan dengan mudah, sebagaimana diperlihatkan oleh beberapa contoh berikut:
· Windows Bitmap (*.bmp)
a=imread('taz_ref.bmp');
figure,imshow(a);
· Joint Photographic Experts Group (*.jpg)
b=imread('oranges.jpg');
figure,imshow(b);
· Tagged Image File Format (*.tif)
c=imread('saturn.tif');
figure,imshow(c);
Jumlah warna yang terdapat dalam suatu citra digital berkaitan erat dengan format data digital yang digunakan. Suatu citra 8 bit (misalnya pada format *.bmp 8-bit) dapat memiliki paling banyak 256 jenis warna di dalamnya. Sedangkan suatu citra 24 bit (misalnya pada format *.png 24-bit) memiliki 224 kombinasi data warna yang dapat ditampilkan.
Suatu citra berwarna dapat dinyatakan dalam banyak cara. Salah satu metode yang paling populer adalah dengan menggunakan metode kanal RGB. Dalam format ini, suatu citra berwarna dinyatakan dalam bentuk gabungan dari tiga buah citra monochrome merah, hijau, dan biru yang berukuran sama. Warna dari setiap piksel citra digital bergantung pada kombinasi ketiga nilai intensitas piksel monochrome yang bersesuaian.
Contoh program untuk mengekstraksi citra monochrome pada toolbox image processing di Matlab adalah sebagai berikut:
d=imread('flowers.tif'); figure, imshow(d);
dR=d(:,:,1); figure,imshow(dR),title('Kanal Merah');
dG=d(:,:,2); figure,imshow(dG),title('Kanal Hijau');
dB=d(:,:,3); figure,imshow(dB),title('Kanal Biru ');
Teknik image enhancement digunakan untuk meningkatkan kualitas suatu citra digital, baik dalam tujuan untuk menonjolkan suatu ciri tertentu dalam citra tersebut, maupun untuk memperbaiki aspek tampilan. Proses ini biasanya didasarkan pada prosedur yang bersifat eksperimental, subjektif, dan amat bergantung pada tujuan yang hendak dicapai.
1. Operasi Titik
Operasi titik dalam image enhancement dilakukan dengan memodifikasi histogram citra masukan agar sesuai dengan karakteristik yang diharapkan. Histogram dari suatu citra adalah grafik yang menunjukkan distribusi frekuensi dari nilai intensitas piksel dalam citra tersebut.
Contoh perintah untuk menampilkan histogram adalah:
I=imread('rice.tif');
figure,imshow(I);
figure,imhist(I);
Beberapa teknik image enhancement melalui operasi titik antara lain adalah intensity adjustment (termasuk brightening dan darkening), histogram equalization, dan thresholding.
1.1 Intensity Adjustment
Intensity adjusment bekerja dengan cara melakukan pemetaan linear terhadap nilai intensitas pada histogram awal menjadi nilai intensitas pada histogram yang baru.
Perintah umum untuk melakukan pemetaan linear tersebut adalah:
J = imadjust(I,[low_in,high_in),[low_out,high_out])
dimana :
low_in merupakan nilai intensitas yang akan dipetakan sebagai low_out
high_in merupakan nilai intensitas yang akan dipetakan sebagai high_out
Contoh:
Citra rice.tif di samping memiliki nilai kekontrasan yang rendah. Berdasarkan histogramnya, dapat diketahui bahwa citra ini tidak memiliki piksel dengan intensitas di bawah 40 dan di atas 225. Untuk memperbaikinya, kita dapat memetakan histogram secara linear sehingga diperoleh sebuah citra baru yang memiliki rentang histogram antara 0 hingga 255.
Perintah untuk melakukan intensity adjustment:
I=imread('rice.tif');
J=imadjust(I,[0.15 0.9],[0 1]);
figure,imshow(I);
figure,imhist(I);
figure,imshow(J);
figure,imhist(J);
1.2 Histogram Equalization
Teknik histogram equalization bertujuan untuk menghasilkan suatu citra keluaran yang memiliki nilai histogram yang relatif sama.
Contoh perintah untuk melakukan histogram equalization:
I=imread('rice.tif');
J=histeq(I);
figure,imshow(I);
figure,imhist(I);
figure,imshow(J);
figure,imhist(J);
1.3 Thresholding
Thresholding merupakan proses pemisahan piksel-piksel berdasarkan derajat keabuan yang dimilikinya. Piksel yang memiliki derajat keabuan lebih kecil dari nilai batas yang ditentukan akan diberikan nilai 0, sementara piksel yang memiliki derajat keabuan yang lebih besar dari batas akan diubah menjadi bernilai 1
Contoh perintah untuk melakukan thresholding:
I=imread('rice.tif');
J=im2bw(I,0.4);
K=im2bw(I,0.5);
figure,imshow(I);
figure,imhist(I);
figure,imshow(J);
figure,imshow(K);
2. Operasi Spasial
Operasi spasial dalam pengolahan citra digital dilakukan melalui penggunaan suatu kernel konvolusi 2-dimensi. Beberapa metode image enhancement yang termasuk dalam keluarga ini adalah neighborhood averaging, median filtering, dan high-pass filtering.
2.1 Neighborhood Averaging
Pada prinsipnya, filter yang digunakan dalam neighborhood averaging merupakan salah satu jenis low-pass filter, yang bekerja dengan cara mengganti nilai suatu piksel pada citra asal dengan nilai rata-rata dari piksel tersebut dan lingkungan tetangganya.
Contoh perintah untuk melakukan neighborhood averaging dengan kernel berukuran 3×3:
I=imread('eight.tif');
kernel=[1 1 1;1 1 1;1 1 1]/9;
J=uint8(conv2(double(I),kernel,'same'));
figure,imshow(I);
figure,imshow(J);
Salah satu persoalan pada penggunaan neighborhood averaging adalah apabila citra masukan telah terkontaminasi noise, sebagaimana diperlihatkan oleh contoh berikut:
I=imread('eight.tif');
IN=imnoise(I,'salt & pepper',0.02);
kernel=[1 1 1;1 1 1;1 1 1]/9;
J=uint8(conv2(double(I),kernel,'same'));
JN=uint8(conv2(double(IN),kernel,'same'));
figure,imshow(I);
figure,imshow(J);
figure,imshow(IN);
figure,imshow(JN);
2.2 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 dengan kernel berukuran 3×3:
I=imread('eight.tif');
IN=imnoise(I,'salt & pepper',0.02);
J=medfilt2(I,[3 3]);
JN=medfilt2(IN,[3 3]);
figure,imshow(I);
figure,imshow(J);
figure,imshow(IN);
figure,imshow(JN);
2.3 High-pass Filtering
Sebagaimana pada proses pengolahan sinyal satu dimensi, high-pass filter dua dimensi akan melewatkan komponen citra frekuensi tinggi dan meredam komponen citra frekuensi rendah.
Contoh perintah untuk melakukan high-pass filtering:
I=imread('saturn.tif');
hpf1=[ 1 -2 1;-2 5 -2; 1 -2 1];
hpf2=[ 0 -1 0;-1 5 -1; 0 -1 0];
hpf3=[-1 -1 -1;-1 9 -1;-1 -1 -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);
3. Operasi Transformasi
Berbeda dengan beberapa metode yang telah dibahas sebelumnya, proses image enhancement berbasis transformasi citra dilakukan dengan:
a. mentransformasi citra asal ke dalam domain yang sesuai bagi proses enhancement
b. melakukan proses enhancement pada domain tersebut
c. mengembalikan citra ke dalam domain spasial untuk ditampilkan/diproses lebih lanjut
Salah satu metode transformasi yang paling 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.
Contoh perintah untuk melakukan low-pass filtering dan high-pass filtering melalui FFT adalah:
I=double(imread('cameraman.tif'));
IF=fft2(I);
mask_high=double(imread('maskpojok.bmp'));
mask_low =not(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('vert');
figure,imagesc(log(abs(IF )),[0 17]),colormap('hot') ,colorbar('vert');
figure,imagesc(hasil_high) ,colormap('gray'),colorbar('vert');
figure,imagesc(log(abs(IFH)),[0 17]),colormap('hot') ,colorbar('vert');
figure,imagesc(hasil_low ) ,colormap('gray'),colorbar('vert');
figure,imagesc(log(abs(IFL)),[0 17]),colormap('hot') ,colorbar('vert');
Pada contoh program tersebut, proses filtering dilakukan melalui masking terhadap komponen frekuensi yang ditentukan. Agar tercipta karakteristik high-pass filter, maka komponen frekuensi rendah (koefisien frekuensi yang berada pada bagian pojok dari citra hasil FFT) di-masking menggunakan nilai 0. Demikian pula sebaliknya untuk memunculkan sifat low-pass filter, komponen frekuensi tinggi (koefisien frekuensi yang berada pada bagian tengah dari citra hasil FFT) dibuat menjadi 0 melalui perkalian dengan mask low-pass.
4. Tugas
4.1 Operasi Titik
Jalankan program berikut dan berikan analisis atas hasil yang diperoleh.
I=imread('rice.tif');
J=imadjust(I,[0.15 0.9],[1 0]);
figure,imshow(I); figure,imhist(I);
figure,imshow(J); figure,imhist(J);
4.2 Operasi Spasial
Jalankan program berikut dan berikan analisis atas hasil yang diperoleh.
I=double(imread('saturn.tif'));
kernel=[1 1 1;1 1 1;1 1 1]/9;
J=conv2(I,kernel,'same');
K=I-J;
figure,imagesc(I),colormap('gray'),colorbar('vert');
figure,imagesc(J),colormap('gray'),colorbar('vert');
figure,imagesc(K),colormap('gray'),colorbar('vert');
4.3 Operasi Transformasi
Jalankan program berikut dan berikan analisis atas hasil yang diperoleh.¹
I =double(imread('segitiga.bmp')); F =fft2(I);
IF=fliplr(I); FF=fft2(IF);
IR=rot90 (I); FR=fft2(IR);
figure,imagesc(I) ,colormap('gray'),colorbar('vert');
figure,imagesc(log(abs(F ))),colormap('hot') ,colorbar('vert');
figure,imagesc(IF) ,colormap('gray'),colorbar('vert');
figure,imagesc(log(abs(FF))),colormap('hot') ,colorbar('vert');
figure,imagesc(IR) ,colormap('gray'),colorbar('vert');
figure,imagesc(log(abs(FR))),colormap('hot') ,colorbar('vert');
1 Gunakan file segitiga.bmp sebagai citra masukan. Pastikan terlebih dahulu agar file tersebut telah berada di direktori kerja yang digunakan.
4.4 Studi Kasus
Image enhancement pada dasarnya merupakan proses yang bersifat subjektif, sehingga parameter keberhasilannya bersifat subjektif pula. Namun demikian, apabila terdapat suatu citra referensi yang merepresentasikan hasil image enhancement yang diinginkan, pengukuran keberhasilan prosedur image enhancement secara kuantitatif dapat dilakukan melalui perhitungan nilai parameter MSE (Mean Squared Error) sebagai berikut:
a. Untuk citra yang terkontaminasi noise berikut (gambar sebelah kiri), lakukanlah prosedur image enhancement sehingga diperoleh hasil yang paling mendekati citra referensi yang bersesuaian (gambar sebelah kanan).²
Prosedur image enhancement yang dilakukan dapat merupakan gabungan dari berbagai metode image enhancement yang tersedia.
b. Tuliskan langkah-langkah image enhancement yang memberikan hasil optimum dalam sebuah m-file. Prosedur image enhancement yang optimum adalah langkah-langkah yang menghasilkan keluaran citra dengan nilai MSE paling rendah. Perhitungan nilai MSE antara citra yang telah di-enhance dengan citra referensi dapat dilakukan melalui program hitungmse.m berikut:
%HITUNGMSE – Fungsi untuk menghitung nilai MSE dari dua buah citra
function NilaiMSE=HitungMSE(Citra,CitraRef);
[tinggi,lebar]=size(Citra);
NilaiSSE=sum(sum((double(Citra)-double(CitraRef)).^2));
NilaiMSE=NilaiSSE/tinggi/lebar;
Dengan menggunakan file hitungmse.m tersebut, perhitungan MSE dapat dilakukan dari command window melalui perintah:
nilai_mse = hitungmse(citra,citra_referensi)
2 Gunakan file taz_noise.bmp sebagai citra yang akan di-enhance, dan file taz_ref.bmp sebagai citra referensi.
Semoga bermanfaat gan meski teori yang berat2 cuman copas doang hahahah
Karena ane g bakat di image processing nih bakatnya pencitraan diri wkwkwkwk

2 komentar:

Rio Pratomo mengatakan...

katanya mw bhas mslah image processing????
mna pbgertiannya kak???

Unknown mengatakan...

Udah rio...

Ntu ada di atas cekidot gan