Я использую AWS Rekognition для обнаружения лиц на изображении. Когда лицо обнаружено, он выводит информацию о связанной рамке, чтобы вы могли использовать ее для рисования на изображении. Однако это левый, верхний, высота и ширина, а числа представляют собой десятичные числа с плавающей запятой.
Вот пример вывода:
{ "BoundingBox": { "Width": 0.06649632751941680908203125, "Height": 0.102198123931884765625, "Left": 0.52286112308502197265625, "Top": 0.2651510536670684814453125 }
И чтобы нарисовать коробки на изображении, я делаю это:
list($width, $height, $type, $attr) = getimagesize($destinationPath . $im . '.png');
$white = imagecolorallocate($im, 255, 255, 255);
imagerectangle($im, $result['FaceDetails']['0']['BoundingBox']['Top'] * $width, $result['FaceDetails']['0']['BoundingBox']['Left'] * $height, $result['FaceDetails']['0']['BoundingBox']['Height'] * $width, $result['FaceDetails']['0']['BoundingBox']['Width'] * $height, $white);
imagepng($im, $destinationPath . $im . '.png', 9);
Однако коробка никогда не соответствует лицу. Есть ли более простой способ преобразовать эти переменные или вычислить их? Я искал везде и мог бы действительно использовать некоторое руководство.