我正在开发一个使图像中的人脸模糊的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);