Jenssegers\ImageHash\Implementations\PerceptualHash::DCT1D PHP Method

DCT1D() protected method

Perform a 1 dimension Discrete Cosine Transformation.
protected DCT1D ( array $pixels )
$pixels array
    protected function DCT1D(array $pixels)
    {
        $transformed = [];
        $size = count($pixels);
        for ($i = 0; $i < $size; $i++) {
            $sum = 0;
            for ($j = 0; $j < $size; $j++) {
                $sum += $pixels[$j] * cos($i * pi() * ($j + 0.5) / $size);
            }
            $sum *= sqrt(2 / $size);
            if ($i == 0) {
                $sum *= 1 / sqrt(2);
            }
            $transformed[$i] = $sum;
        }
        return $transformed;
    }