Source Code Metode Transformasi Wavelet Haar dengan PHP
Source Code Metode Transformasi Wavelet Haar dengan PHP

Berikut ini Source Code Metode Transformasi Wavelet Haar dengan PHP
<?php
    set_time_limit(0);
    class metodeWaveletHaar{
        public $fid = null;
        public $jenisCitra = null;
        public $imageCari = null;
        public $folder = null;
        public $img = null;
        public $imgX = null;
        public $imgY = null;
        public $pixelCitraRedDiambil = null;
        public $pixelCitraGreenDiambil = null;
        public $pixelCitraBlueDiambil = null;
        public $pixelCitraGrayDiambil = null;
        public $pixelCitraGanjil = null;
        public $pixelCitraGenap = null;
        public $jenisPixelCitraGenap = null;
        public $totalImg = 0;
        public $tampilkanPerhitungan = false;
        public function setFolder($dir){
            return $this->folder = $dir;
        }
        public function openFileOrFolder($dir,$typeImg,$tampil,$jenis,$imageCari){
            $this->jenisCitra = $jenis;
            $this->imageCari = $imageCari;
            $this->tampilkanPerhitungan = $tampil;
            if(empty($typeImg)){
                $this->setFolder($dir);    /*Mendefinisikan Lokasi Folder*/
                foreach(glob($this->folder.'*.*') as $img){
                    $this->img = $dir;
                    $this->ambilPexelCitra($typeImg);
                    $this->totalImg++;
                }
            }else{
                $this->img = $dir;
                $this->ambilPexelCitra($typeImg);
            }
        }
        public function total(){
            return $this->totalImg;    /*Banyaknya Citra pada Folder*/
        }
        public function ambilPexelCitra($typeImg){
            switch($typeImg){
                case "png" : $imgPixel = imagecreatefrompng($this->img); break;
                default : $imgPixel = imagecreatefromjpeg($this->img); break;
            }
            $this->imgX = imagesx($imgPixel);
            $this->imgY = imagesy($imgPixel);
            for($x=0;$x<$this->imgX;$x++){    /*Lebar Citra*/
                for($y=0;$y<$this->imgY;$y++){
                    $index     = imagecolorat($imgPixel, $x, $y);
                    $rgb       = imagecolorsforindex($imgPixel, $index);
                    $pixelCitraRed[] = $rgb['red'];
                    $pixelCitraGreen[] = $rgb['green'];
                    $pixelCitraBlue[] = $rgb['blue'];
                    $pixelCitraGray[]    = round((array_sum($rgb)/3),4);
                }
                $this->pixelCitraGrayDiambil = implode(",",$pixelCitraGray);
            }
        }
        public function tampilPexelCitra($pixelCitraDiambil){
            $pixelBarisCitra = explode(",",$pixelCitraDiambil);
            $p = 0; $n=-1;
            for($i=0;$i<$this->imgY;$i++){
                    $p = $p+$this->imgX;
                    if($i<$this->imgY){
                        for($j=$p;$j<$p+$this->imgX;$j++){
                            $n++;
                            if($this->tampilkanPerhitungan==true){
                                echo "
                                    <td>
                                        {$pixelBarisCitra[$j-$this->imgX]}
                                    </td>
                                ";
                            }
                            if($n%2==0){
                                $this->pixelCitraGenap[] = $pixelBarisCitra[$j-$this->imgX];
                            }else{
                                $this->pixelCitraGanjil[] = $pixelBarisCitra[$j-$this->imgX];
                            }
                        }
                    }
            }
            echo "
                </table>
            ";
            $this->rataRataDanSelisihCitra(implode(",",$this->pixelCitraGanjil),implode(",",$this->pixelCitraGenap),$arahBaris=true,null,null);
        }
        public function rataRataDanSelisihCitra($pixelCitraGanjil,$pixelCitraGenap,$arahBaris,$hasilPixelKolomCitraGanjilselisihCitra,$hasilPixelKolomCitraGenapselisihCitra){
            $pixelBarisGanjilCitra = explode(",",$pixelCitraGanjil);
            $pixelBarisGenapCitra = explode(",",$pixelCitraGenap);
            if($hasilPixelKolomCitraGanjilselisihCitra!=null AND $arahBaris!=true){
                $hasilPixelKolomCitraGanjilselisihCitra = explode(",",$hasilPixelKolomCitraGanjilselisihCitra);
                $hasilPixelKolomCitraGenapselisihCitra = explode(",",$hasilPixelKolomCitraGenapselisihCitra);
                for($i=0;$i<COUNT($hasilPixelKolomCitraGanjilselisihCitra);$i++){
                    $rataRataKolomCitra[] = round(($hasilPixelKolomCitraGanjilselisihCitra[$i]+$hasilPixelKolomCitraGenapselisihCitra[$i])/sqrt(2),4);
                    $selisihKolomCitra[] = round(($hasilPixelKolomCitraGenapselisihCitra[$i]-$hasilPixelKolomCitraGanjilselisihCitra[$i])/sqrt(2),4);
                }
                $rataRataKolomCitra = implode(",",$rataRataKolomCitra);
                $selisihKolomCitra = implode(",",$selisihKolomCitra);
            }
            for($i=0;$i<COUNT($pixelBarisGanjilCitra);$i++){
                $rataRataCitra[] = round(($pixelBarisGanjilCitra[$i]+$pixelBarisGenapCitra[$i])/sqrt(2),4);
                $selisihCitra[] = round(($pixelBarisGenapCitra[$i]-$pixelBarisGanjilCitra[$i])/sqrt(2),4);
            }
            $pixelrataRataCitra = implode(",",$rataRataCitra);
            $pixelSelisihCitra = implode(",",$selisihCitra);
            if($arahBaris==true){
                $this->dekomposisiArahBarisCitra($pixelrataRataCitra,$pixelSelisihCitra);
            }else{
                $this->hasilDekomposisiCitra($pixelrataRataCitra,$pixelSelisihCitra,$rataRataKolomCitra,$selisihKolomCitra);
            }
        }
        public function dekomposisiArahBarisCitra($rataRataCitra,$selisihCitra){
            $rataRataCitra = explode(",",$rataRataCitra);
            $selisihCitra = explode(",",$selisihCitra);
            $p = 0; $setengahBaris = $this->imgX/2;
            for($i=0;$i<$this->imgY;$i++){       
                $p = $p+$setengahBaris;
                if($i<$this->imgY){
                    for($j=$p;$j<$p+$setengahBaris;$j++){
                        $hasilRataRataCitra[] = $rataRataCitra[$j-$setengahBaris];
                    }
                    for($j=$p;$j<$p+$setengahBaris;$j++){
                        $hasilSelisihCitra[] = $selisihCitra[$j-$setengahBaris];
                    }
                }
            }
            $this->dekomposisiCitraArahKolom(implode(",",$hasilRataRataCitra),implode(",",$hasilSelisihCitra));
        }
        public function dekomposisiCitraArahKolom($hasilRataRataCitra,$hasilSelisihCitra){
            $rataRataCitra = explode(",",$hasilRataRataCitra);
            $selisihCitra = explode(",",$hasilSelisihCitra);
            $n = 0; $setengahBaris = $this->imgX/2;
            for($j=0;$j<$setengahBaris;$j+=1){
                if($j<$setengahBaris){
                    for($i=0;$i<COUNT($rataRataCitra);$i+=$setengahBaris){
                            if($n%2==0){
                                $pixelKolomCitraGenap[] = $rataRataCitra[$i+$j];
                                $pixelKolomCitraGenapSelisih[] = $selisihCitra[$i+$j];
                            }else{
                                @$pixelKolomCitraGanjil[] = $rataRataCitra[$i+$j];
                                @$pixelKolomCitraGanjilSelisih[] = $selisihCitra[$i+$j];
                            }
                        $n++;
                    }
                    $hasilPixelKolomCitraGenap = implode(",",$pixelKolomCitraGenap);
                    $hasilPixelKolomCitraGanjil = implode(",",$pixelKolomCitraGanjil);
                   
                    $hasilPixelKolomCitraGenapselisihCitra = implode(",",$pixelKolomCitraGenapSelisih);
                    $hasilPixelKolomCitraGanjilselisihCitra = implode(",",$pixelKolomCitraGanjilSelisih);
                }
            }
        }
        public function hitungEnergiCitra($energiCitra1,$energiCitra2,$energiCitra3,$energiCitra4){
            $ciriCitra1 = 0;
            $ciriCitra2 = 0;
            $ciriCitra3 = 0;
            $ciriCitra4 = 0;
            $pecahEnergi1 = explode(",",$energiCitra1);
            $pecahEnergi2 = explode(",",$energiCitra2);
            $pecahEnergi3 = explode(",",$energiCitra3);
            $pecahEnergi4 = explode(",",$energiCitra4);
            for($i=0;$i<COUNT($pecahEnergi1);$i++){
                $ciriCitra1 = $ciriCitra1+$pecahEnergi1[$i];
                $ciriCitra2 = $ciriCitra2+$pecahEnergi2[$i];
                $ciriCitra3 = $ciriCitra3+$pecahEnergi3[$i];
                $ciriCitra4 = $ciriCitra4+$pecahEnergi4[$i];
            }
        }
    }
?>

0 comments:

Post a Comment

 
Top