HarmonyOS 人脸检测矩形框left top与实际不对?

从双路预览的获取的buffer创建pixelMap调用faceDetector.detect,返回的矩形框坐标不准,脸是贴着屏幕左边的,但是left是190多,face point各个点的x是900多,这个换算规则是怎样的?

// 将buffer转为 PixelMap
let sourceOptions: image.SourceOptions = {
  sourceDensity: 120,
  sourcePixelFormat: 8,
  sourceSize: {
    height: 1080,
    width: 1920
  }
}
let imageSource = image.createImageSource(buffer, sourceOptions);
const decodingOptions: image.DecodingOptions = {
  editable: true, // 是否可编辑。当取值为false时,图片不可二次编辑,如crop等操作将失败。
  desiredPixelFormat: 3, // 解码的像素格式。3表示RGBA_8888。
}
// 创建pixelMap
let originalPixelMap:image.PixelMap = await imageSource.createPixelMap(decodingOptions);
// 创建vision info
let visionInfo: faceDetector.VisionInfo = {
  pixelMap: originalPixelMap,
};
let data: faceDetector.Face[] = await faceDetector.detect(visionInfo);
if (data.length === 0) {
  this.faceInView = false;
  return;
}

let face: faceDetector.Face = data[0];
let rect: faceDetector.FaceRectangle = face.rect;
阅读 466
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
logo
HarmonyOS
子站问答
访问
宣传栏