我需要帮助来使用PHP模糊处理图像的一部分吗?

时间:2019-06-25 00:24:46

标签: php json gd

我正在开发一个使图像中的人脸模糊的Web应用程序,我使用了Google Vision API来检测无法实现模糊效果的人脸。 我已经有了坐标,请参见示例JSON。

boundingPoly": {
    "vertices": [
      {
        "x": 1002,
        "y": 1024
      },
      {
        "x": 1105,
        "y": 1024
      },
      {
        "x": 1105,
        "y": 1144
      },
      {
        "x": 1002,
        "y": 1144
      }
    ]
  }

可以在此处查看图像:https://i.imgur.com/o1uIqL7.jpg 这是Google Vision的完整JSON输出:https://groupghost.com/crowd2.json

这是我尝试过的:

$data = json_decode(file_get_contents('data/crowd2.json'), 1);
$img1 = imagecreatefromjpeg('data/crowd2.jpg');

foreach ($data['faceAnnotations'] as $key => $value) {

    $box = $value['boundingPoly']['vertices'];
    $x = $box[0]['x'];
    $y = $box[0]['y'];
    $width = $box[1]['x']-$box[0]['x'];
    $height = $box[2]['y']-$box[0]['y'];


    $img2 = imagecreatetruecolor($width, $height);

    imagecopy($img2, $img1, 0, 0, $x, $y, $width, $height);

    $gaussian = array(
        array(1.0, 2.0, 1.0),
        array(2.0, 4.0, 2.0),
        array(1.0, 2.0, 1.0)
    );
    imageconvolution($img2, $gaussian, 16, 0);

    imagecopymerge($img1, $img2, $x, $y, 0, 0, $width, $height, 100);
    imagedestroy($img2);

}

imagejpeg($img1, 'data/temp.jpg');

imagedestroy($img1);

0 个答案:

没有答案