2

简短:如何使用面部检测器坐标和大小进行图像操纵器裁剪?我想从照片中裁剪人脸。

解释;

我使用带有面部检测的曝光相机。它工作得很好。人脸检测器给出输出对象

 "origin": Object {
    "x": 85.00000000000006,
    "y": 231.35,   },   "size": Object {
    "height": 182,
    "width": 173.33333333333331,   }, }

我可以在适合屏幕尺寸的相机预览模式下使用该坐标在面部周围绘制一个框。拍摄图像后,输出图像比相机预览大得多。所以我不能使用那个坐标来裁剪图片。我根据图像大小更新了面部检测器坐标和大小。例如,如果图像宽度比屏幕宽度大 2 倍,我将 originx 和宽度乘以 2。但是图像操纵器裁剪并没有给我想要的结果。任何帮助,将不胜感激。

4

1 回答 1

1

这就是我的解决方案。我取屏幕尺寸和面部尺寸的百分比。

const growthFactor = {
          w: data.width / width,
          h: data.height / height,
        };
        const cropDimensions = {
          originX: Math.round(
            growthFactor.w * face.origin.x
          ),
          originY: Math.round(
            growthFactor.h * face.origin.y
          ),
          width: Math.round(
            growthFactor.h * face.size.height
          ),
          height: Math.round(
            growthFactor.h * face.size.height
          ),
        };

附言。我将高度和宽度都与 growtfactor.h 相乘,因为我需要方形裁剪照片。

于 2021-06-28T15:22:12.623 回答