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. Please purchase PDFcamp Printer on http://www.verypdf.com/ to remove this watermark.
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
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('---');
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));
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 = FTkrR.*conj(FTkrR)/256; XR = PyykrR;
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 = FTkrG.*conj(FTkrG)/256; XG = 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 = FTkrB.*conj(FTkrB)/256; XB = 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.
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')
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.
BAB III PENGOLAHAN DATA
Sekilas sampel terlihat memilki keseragaman BV pada setiap pikselnya.
Sampel tersebut kemudian di proses untuk dibaca BVnya 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”.
Please purchase PDFcamp Printer on http://www.verypdf.com/ to remove this watermark.