Please purchase PDFcamp Printer on http://www.verypdf.com/ to remove this watermark. BAB III PENGOLAHAN DATA
BAB III PENGOLAHAN DATA
3.1. Algoritma Pengolahan Data Algoritma pengolahan data ini merupakan tahapan-tahapan logis dari pengerjaan olah data penelitian yang hasilnya berupa angka-angka parameter yang dicari. Algoritma lengkap penelitian ini ada dalam lampiran. Parameter-parameter yang dicari adalah maksimum korelasi pra dan pasca FFT, minimum korelasi pra dan pasca FFT, posisi maksimum dan minimum korelasi pada citra pencarian, standar deviasi citra acuan dan citra pencarian.
III-1
Please purchase PDFcamp Printer on http://www.verypdf.com/ to remove this watermark. BAB III PENGOLAHAN DATA
Gambar 3.1. Flowchart tahapan pengerjaan olah data. 3.2. Cropping Daerah Homogen Sebagai Sampel Untuk mempercepat penulusuran, biasanya luas daerah penelusuran dibatasi sehingga tidak seluruh citra dijelajahi. Untuk ini bantuan operator diperlukan untuk menunjukkan batas perkiraan lokasi objek pada citra kanan yang bentuknya paling mendekati. Ukuran mask window dan search window sangat berperan dalam proses penelusuran objek. Semakin kecil ukurannya, karakteristk objek makin berkurang, sehingga tingkat pengenalannya semakin sulit. Demikian sebaliknya, semakin besar dimensinya tingkat kemiripannya akan semakin kabur, sehingga bentuk objek sukar dikenali [Sumarto,Suparman,Anggraini;2000]. Cropping yaitu memotong bagian tertentu suatu citra dari bagian besarnya. Pada penelitian ini cropping citra dilakukan dengan membaca nilai-nilai BV yang akan diteliti dari matriks BV
ITB2-051.bmp dan ITB2-061.bmp yang sudah
dibaca sebelumnya oleh perintah imread pada Matlab 7 masing-masing sebagai citra kiri dan citra kanan.. Untuk menentukan daerah mana yang akan di-cropping , di-input-kan secara manual posisi baris kolom kiri atas dan kanan bawah daerah homogen yang diteliti. Kemudian dengan program “otomasi.m” pada Matlab 7 hanya nilai BV
III-2
Please purchase PDFcamp Printer on http://www.verypdf.com/ to remove this watermark. BAB III PENGOLAHAN DATA
dari posisi baris kolom kiri atas hingga baris kolom kanan bawah saja yang dibaca dan kemudian menjadi bahan untuk diproses berikutnya. Berikut ini dalah perintah dalam “otomasi.m” untuk cropping daerah yang akan diteliti: disp ('program korelasi'); disp ('Jenis band:'); disp ('1.Red'); disp ('2.Green'); disp ('3.Blue') ; disp('------------------------------------------'); disp('Region wilayah yang diteliti'); disp('------------------------------------------'); disp('foto kiri'); disp('-----------------') disp('mask'); ee=input('size kolom:'); ff=input('size baris:'); disp('-----------------') disp('center'); gg=input('kolom:'); hh=input('baris:'); a=gg-((ee-1)/2);%input('kolom kiri atas :'); aa=hh-((ff-1)/2);%input('baris kiri atas:'); b=gg+((ee+1)/2);%input('kolom kanan bawah:'); bb=hh+((ff+1)/2);%input('baris kanan bawah:'); disp('-------------------------------------------'); disp('foto kanan'); disp('-----------------') disp('size of searching window'); ii=input('kolom:'); jj=input('baris:'); disp('-----------------') disp('center'); kk=input('kolom:'); ll=input('baris:'); c=kk-(ii/2);%input('kolom kiri atas:'); cc=ll-(jj/2);%input('baris kiri atas:') d=kk+(ii/2);%input('kolom kanan bawah:'); dd=ll+(jj/2);%input('baris kanan bawah:'); disp('-------------------------------------------');
III-3
Please purchase PDFcamp Printer on http://www.verypdf.com/ to remove this watermark. BAB III PENGOLAHAN DATA
3.3. Pemilahan Brightness Value Kedalam Kanal Merah, Hijau, dan Biru Untuk memperhitungkan dominasi warna pada citra dan sensitifitas sensor masing-masing kanal, maka nilai piksel pada citra dipilah-pilah kedalam kanal merah, hijau, biru. Karena nilai piksel citra disimpan dalam bentuk array tiga maka matriks nilai piksel citra dipilah berdasarkan urutan baris arraynya. Array pertama merupakan menjadi matriks nilai piksel untuk kanal merah. Array kedua menjadi matriks nilai piksel untuk kanal hijau dan array ketiga menjadi nilai piksel untuk kanal biru. Contoh perintah memilah nilai piksel: fotoKn=imread('ITB2-06l.bmp'); fotoKr=imread('ITB2-05l.bmp'); KnR=double(fotoKn(:,:,1)); KrR=double(fotoKr(:,:,1)); KnG=double(fotoKn(:,:,2)); KrG=double(fotoKr(:,:,2)); KnB=double(fotoKn(:,:,3)); KrB=double(fotoKr(:,:,3));
3.4. Pengkorelasian Citra Kiri Dengan Citra Kanan Pengkorelasian dilakukan dengan citra kiri sebagai mask pencarian dan citra kanan sebagai sebagai bidang pencarian. Seperti yang sudah dibahas pada bab 2 bahwa metode pencocokan citra yang dipakai pada penelitian ini ada III-4
Please purchase PDFcamp Printer on http://www.verypdf.com/ to remove this watermark. BAB III PENGOLAHAN DATA
berbasiskan area. Dimana nilai matriks mask akan dikorelasikan dengan nilai matriks dari citra kanan yang seukuran dengan mask (citra pencarian). Pengkorelasian dilakukan menggunakan perintah looping for-end yang melakukan perhitungan berulang hingga nilai baris kolom yang telah ditentukan dan corr2 pada Matlab 7 yang berdasarkan prinsip korelasi Pearson dalam mengkorelasikan dua buah matriks. %sizing [b1 k1]=size(krR); [b2 k2]=size(knR); nbaris=b2-b1+1; nkolom=k2-k1+1; format long g %processing for i=1:nbaris; for j=1:nkolom; imknmaskR(:,:,i,j)=knR(i:i+b1-1,j:j+k1-1); corrvalueR(i,j)=corr2(krR,imknmaskR(:,:,i,j)); imknmaskG(:,:,i,j)=knG(i:i+b1-1,j:j+k1-1); corrvalueG(i,j)=corr2(krG,imknmaskG(:,:,i,j)); imknmaskB(:,:,i,j)=knB(i:i+b1-1,j:j+k1-1); corrvalueB(i,j)=corr2(krB,imknmaskB(:,:,i,j));
end end
3.5. Pengkorelasian Citra Kiri dan Citra Kanan Dengan FFT Data Berbeda dengan langkah sebelumnya kali ini matriks nilai piksel tidak langsung dikorelasikan namun terlebih dahulu dirubah kedalam domain frekwensi menggunakan Fast Fourier Transform. Setelah di konversikan kedalam domain frekwensi barulah data di korelasikan dengan perintah looping for-end dan corr2. [b1 k1]=size(krR); [b2 k2]=size(knR); nbaris=b2-b1+1; nkolom=k2-k1+1;
format long g %processing for i=1:nbaris; for j=1:nkolom; FTknmaskR(:,:,i,j)=fft(knR(i:i+b1-1,j:j+k1-1)); FTkrR=fft(krR); PyyknmaskR(:,:,i,j) = FTknmaskR(:,:,i,j).*conj(FTknmaskR(:,:,i,j))/256; PyykrR XR
= FTkrR.*conj(FTkrR)/256;
= PyykrR;
III-5
Please purchase PDFcamp Printer on http://www.verypdf.com/ to remove this watermark. BAB III PENGOLAHAN DATA
YR (:,:,i,j)
= PyyknmaskR(:,:,i,j);
corrvalue2R(i,j)=corr2(XR,YR (:,:,i,j));
FTknmaskG(:,:,i,j)=fft(knG(i:i+b1-1,j:j+k1-1)); FTkrG=fft(krG); PyyknmaskG(:,:,i,j) = FTknmaskG(:,:,i,j).*conj(FTknmaskG(:,:,i,j))/256; PyykrG XG
= FTkrG.*conj(FTkrG)/256;
= PyykrG;
YG (:,:,i,j)
= PyyknmaskG(:,:,i,j);
corrvalue2G(i,j)=corr2(XG,YG (:,:,i,j));
FTknmaskB(:,:,i,j)=fft(knB(i:i+b1-1,j:j+k1-1)); FTkrB=fft(krB); PyyknmaskB(:,:,i,j) = FTknmaskB(:,:,i,j).*conj(FTknmaskB(:,:,i,j))/256; PyykrB XB
= FTkrB.*conj(FTkrB)/256;
= PyykrB;
YB (:,:,i,j)
= PyyknmaskB(:,:,i,j);
corrvalue2B(i,j)=corr2(XB,YB (:,:,i,j));
end end
3.6. Pencarian Nilai Maksimum Korelasi dan Penghitungan Simpangan Baku Hasil dari pengkorelasian citra kiri dengan citra kanan sebelum dan sesudah data di-FFT-kan adalah matriks korelasi data pra dan pasca FFT. Kedua matriks tersebut kemudian diabsolutkan untuk mendapatkan semua nilai didalam matriks menjadi positif. Kemudian setelah semua nilai didalam matriks positif, dicarilah nilai yang paling maksimum diantara nilai-nilai pada matriks korelasi tersebut menggunakan perintah max. Nilai maksimum yang didapatkan disebut juga sebagai nilai maksimum korelasi. Setelah nilai maksimum didapatkan selanjutnya dilakukan perhitungan posisi nilai maksimum tersebut dalam koordinat citra pencarian (citra kanan). Selain nilai maksimum dihitung pula nilai minimum korelasi pada matriks nilai korelasi. Hal ini berguna untuk melihat rentang nilai korelasi yang terbentuk saat pra dan pasca data di-FFT-kan. Sebagai tambahan dihitung pula standar deviasi data pada citra acuan (mask) dan citra pencarian. Terakhir adalah menampilkan hasil perhitungan saat pra dan pasca FFT yaitu nilai korelasi maksimum dan minimum, nilai baris dan kolomya pada citra
III-6
Please purchase PDFcamp Printer on http://www.verypdf.com/ to remove this watermark. BAB III PENGOLAHAN DATA
pencarian, serta nilai standar deviasi citra acuan dan citra pencarian semuanya dalam masing-masing kanal RGB. %standar deviasi input per kanal sdkrR=[ ]; for v=1:ee; sdkrR=[sdkrR krR(v,:)]; end sdCAr=std((sdkrR)); disp('Data :') disp('1.Pra FFT') disp('2.Pasca FFT') disp('----------------------------------------------------------------------------------------------') disp('Red Channel') abs1R=abs(corrvalueR); [oR colMR ]=max(max(abs1R)); MR=max(max(abs1R)); dR=abs1R(:,colMR); [sR rowMR]=max(dR); mR=min(min(abs1R)); [tR colmR ]=min(min(abs1R)); eR=abs1R(:,colmR); [aR rowmR]=min(eR);
rwMaxRCP=rowMR+((0.5*b1)+0.5)-1; rwMaxR=cc+rwMaxRCP; klMaxRCP=colMR+((0.5*k1)+0.5)-1; klMaxR=c+klMaxRCP; rwMinRCP=rowmR+((0.5*b1)+0.5)-1; rwMinR=cc+rwMinRCP; klMinRCP=colmR+((0.5*k1)+0.5)-1; klMinR=c+klMinRCP; abs2R=abs(corrvalue2R); [oFR colMFR ]=max(max(abs2R)); MFR=max(max(abs2R)); dFR=abs2R(:,colMFR); [sFR rowMFR]=max(dFR); mFR=min(min(abs2R)); [tR colmFR ]=min(min(abs2R)); eFR=abs2R(:,colmFR); [aFR rowmFR]=min(eFR); rwMaxFRCP=rowMFR+((0.5*b1)+0.5)-1; rwMaxFR=cc+rwMaxFRCP; klMaxFRCP=colMFR+((0.5*k1)+0.5)-1; klMaxFR=c+klMaxFRCP; rwMinFRCP=rowmFR+((0.5*b1)+0.5)-1; rwMinFR=cc+rwMinFRCP; klMinFRCP=colmFR+((0.5*k1)+0.5)-1; klMinFR=c+klMinFRCP; zR=[1 MR klMaxR rwMaxR mR klMinR rwMinR sdCAr sdCPr]; yR=[2 MFR klMaxFR rwMaxFR mFR klMinFR rwMinFR]; disp('Data MaxKorelasi Kolom(CP) Baris(CP) MinKorelasi Kolom(CP) Baris(CP) Sd(CA)
Sd(CP)')
fprintf('%1.0f %12.5f %7.0f %7.0f %14.5f %9.0f %9.0f %12.5f %12.5f\n',zR') fprintf('%1.0f %12.5f %7.0f %7.0f %14.5f %9.0f %9.0f\n',yR')
III-7
Please purchase PDFcamp Printer on http://www.verypdf.com/ to remove this watermark. BAB III PENGOLAHAN DATA
Gambar 3.3. Contoh eksekusi pada layar 3.7. Aplikasi Teknik Maximum Correlation Berbasis FFT Pada Pencocokan Citra Homogen Proses pencocokan citra dilakukan berdasarkan pada kajian keberhasilan proses pencocokan citra di area yang bertampalan dengan karakteristik objek homogen.
Gambar 3.4. Foto
kiri : itb2-051.bmp
Gambar 3.5.Foto
kanan : itb2-061.bmp
Gambar 3.6. Contoh sampel homogen pada daerah pertampalan.
III-8
Please purchase PDFcamp Printer on http://www.verypdf.com/ to remove this watermark. BAB III PENGOLAHAN DATA
Sekilas sampel terlihat memilki keseragaman BV pada setiap pikselnya. Sampel tersebut kemudian di proses untuk dibaca BV nya sehingga menjadi suatu matriks informasi apakah nilai-nilainya memiliki rentang yang dekat atau terlalu jauh. Jika ternyata rentangnya dekat misal dari 25 hingga 30 maka sampel tersebut diambil sebagai bahan penelitian. Setelah dibaca nilai BV-nya kemudian dibuat power spektrum pada masing-masing foto kiri dan kanan dengan FFT setelah itu dicari nilai maksimum korelasi keduanya, semuanya dibantuan program “otomasi.m” pada Matlab 7. Berikut contoh hasil perhitungannya:
Gambar 3.7. Contoh hasil perhitungan pencocokan citra homogen dengan program “otomasi.m”.
III-9