O Projeto Cummy
Por: igormota062 • 21/5/2024 • Trabalho acadêmico • 1.093 Palavras (5 Páginas) • 40 Visualizações
<?php
// define o tamanho da janela do filtro
$window_size = 3;
// função que aplica o filtro Cummy em uma imagem
function cummy_filter($image_path, $window_size) {
// carrega a imagem
$image = imagecreatefromjpeg($image_path);
// obtem a largura e altura da imagem
$width = imagesx($image);
$height = imagesy($image);
// cria uma nova imagem para armazenar a imagem filtrada
$filtered_image = imagecreatetruecolor($width, $height);
// percorre todos os pixels da imagem
for ($x = 0; $x < $width; $x++) {
for ($y = 0; $y < $height; $y++) {
// obtém os valores dos pixels na janela
$values = array();
for ($i = -$window_size; $i <= $window_size; $i++) {
for ($j = -$window_size; $j <= $window_size; $j++) {
// verifica se o pixel está dentro da imagem
if ($x + $i >= 0 && $x + $i < $width && $y + $j >= 0 && $y + $j < $height) {
// obtém o valor do pixel na posição (x+i, y+j)
$rgb = imagecolorat($image, $x + $i, $y + $j);
$r = ($rgb >> 16) & 0xFF;
$g = ($rgb >> 8) & 0xFF;
$b = $rgb & 0xFF;
// calcula o valor do pixel usando uma função de peso assimétrica
$value = (0.1 * $r) + (0.6 * $g) + (0.3 * $b);
// armazena o valor do pixel na janela
array_push($values, $value);
}
}
}
// calcula a média dos valores da janela
$average = array_sum($values) / count($values);
// define a cor do pixel na imagem filtrada
$color = imagecolorallocate($filtered_image, $average, $average, $average);
imagesetpixel($filtered_image, $x, $y, $color);
}
...