Преобразование массива, выведенного из DCT, в изображение в PHP - PullRequest
0 голосов
/ 05 января 2019

Используя следующий код, я могу получить DCT изображения в PHP. Затем мне нужно преобразовать это обратно в сжатое изображение. Как мне этого добиться?

<?php

$results = array();
$image1 = "baboon.jpg";
$ima = ImageCreateFromJPEG($image1);
$N1 = imagesx($ima);
$N2 = imagesy($ima);

$rows = array();
$row = array();
for ($j = 0; $j < $N2; $j++) {
    for ($i = 0; $i < $N1; $i++)
        $row[$i] = imagecolorat($ima, $i, $j);
    $rows[$j] = dct1D($row);
}

for ($i = 0; $i < $N1; $i++) {
    for ($j = 0; $j < $N2; $j++)
        $col[$j] = $rows[$j][$i];
    $results[$i] = dct1D($col);
}

print_r($results);

function dct1D($in) {
    $results = array();
    $N = count($in);
    for ($k = 0; $k < $N; $k++) {
        $sum = 0;
        for ($n = 0; $n < $N; $n++) {
             $sum += $in[$n] * cos($k * pi() * ($n + 0.5) / ($N));
        }
        $sum *= sqrt(2 / $N);
        if ($k == 0) {
            $sum *= 1 / sqrt(2);
        }
        $results[$k] = $sum;
    }
    return $results;
}

?>

Также мне нужно знать, как я могу добавить некоторые дополнительные детали, например, другое сообщение, к этому изображению .. (стеганография изображения). Пожалуйста помоги. Спасибо

...