تالار گفتمان nCIS.ir

نسخه‌ی کامل: درخواست پیشنهاد برای بهینه کردن کد
شما در حال مشاهده نسخه آرشیو هستید. برای مشاهده نسخه کامل کلیک کنید.
function quantify() {
        
        $inc = $this->iteratorIncrement;
        $width = $this->width();
        $height = $this->height();
        list($Cb1, $Cb2, $Cr1, $Cr2) = $this->boundsCbCr;
        $white = $this->excludeWhite;
        $black = $this->excludeBlack;
        $total = $count = 0;
        
        for($x = 0; $x < $width; $x += $inc)
            for($y = 0; $y < $height; $y += $inc) {
                list($r, $g, $b) = $this->rgbXY($x, $y);
                
                // Exclude white/black colors from calculation, presumably background
                if((($r > $white) && ($g > $white) && ($b > $white)) ||
                    (($r < $black) && ($g < $black) && ($b < $black))) continue;
                
                // Converg pixel RGB color to YCbCr, coefficients already divided by 255
                $Cb = 128 + (-0.1482 * $r) + (-0.291 * $g) + (0.4392 * $b);
                $Cr = 128 + (0.4392 * $r) + (-0.3678 * $g) + (-0.0714 * $b);

                // Increase counter, if necessary
                if(($Cb >= $Cb1) && ($Cb <= $Cb2) && ($Cr >= $Cr1) && ($Cr <= $Cr2))
                    $count++;
                $total++;
            }

        return $count / $total;
    }

دوستان این کد رو نگا کنید، هر ایده ای به ذهنتون میرسه که سرعتش رو افزایش بدم بگید. حدود 3 میلیون بار توی حلقه باید این کد اجرا بشه و سرعتش مهمه!
UP...