Exemple #1
0
 public static function imageDenoise(&$image, $sizeX, $sizeY)
 {
     // 初始化
     self::$image = $image;
     self::$visit = array_fill(0, 120, array_fill(0, 60, FALSE));
     self::$denoised = self::$visit;
     self::$sizeX = $sizeX;
     self::$sizeY = $sizeY;
     // 去噪
     for ($x = 0; $x < $sizeX; $x++) {
         for ($y = 0; $y < $sizeY; $y++) {
             if (!self::$visit[$x][$y] && self::$image[$x][$y] != 255) {
                 $size = self::getBlockSize($x, $y, 0);
                 // 求块大小
                 if ($size < 10) {
                     // 根据块大小判断噪点簇
                     self::deletePixel($x, $y);
                 }
             }
         }
     }
     return self::$image;
 }