muhammad_97
@muhammad_97
PHP-разработчик

Удаление шума на изображении с помощью php?

Привет. Написал функцию удаления шума с изображения.

function removeNoise($image)
{
  $width = imagesx($image);
  $height = imagesy($image);
 
  $result = imagecreatetruecolor($width, $height);
  $white = imagecolorallocate($result, 255, 255, 255);
  imagefilledrectangle($result, 0, 0, $width + 1, $height, $white);
 
  for($x = 1; $x <= $width; $x++)
  {                              
    for($y = 1; $y <= $height; $y++)
    {                              
                               
      $count = countAroundPixels($image, $x, $y);
 
      if ($count > 4)
      {
                                       
        $color = imagecolorallocate($result, 0, 0, 0);
        imagesetpixel($result, $x, $y, $color);
 
      }

    }
  }
 
  return $result;
 
}


Результат можно увидеть в прикрепленном файле. Как видно, результат неважный. "Откусывается" часть цифр. Может быть есть способы улучшить алгоритм очистки?

1:
06af194bf07e433c954eefccf7098b23.png
2:
66666fa4d54c4769a63edea9a4da5cd3.png
3:
6ed27a69392d4b42ada352580846efc9.png
  • Вопрос задан
  • 3477 просмотров
Решения вопроса 2
@Eddy_Em
Я не понимаю, при чем здесь пыхпых, но на конкретных примерах элементарный медианный фильтр отлично решил бы проблему!
Ответ написан
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
Берем Imagick::medianFilterImage
и проходимся последовательно с радиусом 1-3-5-7-9 пикселей от входного изображения.
Как только разница при наложении между предыдущим и текущим изображением станет меньше порогового - вот наши циферки)
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы