为了账号安全,请及时绑定邮箱和手机立即绑定

为什么绘制的脸部矩形,位置显示不正确。显示在头上,而不再脸上?

为什么绘制的脸部矩形,位置显示不正确。显示在头上,而不再脸上?

	private void drawBitmap(Bitmap bitmap, FaceDetail detail) {
		Bitmap createBitmap = Bitmap.createBitmap(bitmap.getWidth(),
				bitmap.getHeight(), bitmap.getConfig());
		int bitmapWidth = createBitmap.getWidth();
		int bitmapHeight = createBitmap.getHeight();
		Canvas canvas = new Canvas(createBitmap);

		Paint paint = getPaint(bitmap);
		canvas.drawBitmap(bitmap, 0, 0, null);

		float center_x =  (float) detail.getFace().get(0).getPosition()
				.getCenter().getX();
		float center_y =  (float) detail.getFace().get(0).getPosition()
				.getCenter().getY();
		float image_width =  (float) detail.getFace().get(0).getPosition()
				.getWidth();
		float image_height =  (float) detail.getFace().get(0).getPosition()
				.getHeight();

		float face_with = (float) (image_width / 100 * bitmapWidth);
		float face_height = (float) (image_height / 100 * bitmapHeight);
		float center_width = (float) (center_x / 100 * bitmapWidth);
		float center_height = (float) (center_y / 100 * bitmapHeight);
		canvas.drawLine(center_width - face_with/2, center_y - face_height/2,
				center_width + face_with/2, center_y - face_height/2, paint);
		canvas.drawLine(center_width - face_with/2, center_y - face_height/2,
				center_width - face_with/2, center_y + face_height/2, paint);
		canvas.drawLine(center_width + face_with/2, center_y + face_height/2,
				center_width + face_with/2, center_y - face_height/2, paint);
		canvas.drawLine(center_width + face_with/2, center_y + face_height/2,
				center_width - face_with/2, center_y + face_height/2, paint);
		canvas.drawCircle(center_width, center_height, 10, paint);
		choseMap = createBitmap;
		image.setImageBitmap(choseMap);
	}


正在回答

1 回答

这个代码于视频里面不一致呀~~仔细检查下把~创建的bitmap的尺寸一定要和上传时的尺寸一致,即视频中的mPhotoImg。

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
How-old 刷脸神器
  • 参与学习       31545    人
  • 解答问题       155    个

通过第三方本课程教大家实现人脸识别,通过案例讲解原理

进入课程

为什么绘制的脸部矩形,位置显示不正确。显示在头上,而不再脸上?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信