根据5个人脸特征点,快速计算人脸角度

// 计算翻滚角
float getRoll(int leftEyeX, int leftEyeY, int rightEyeX, int rightEyeY)
{
	float dx = rightEyeX - leftEyeX;
	float dy = rightEyeY - leftEyeY;
	
	if (fabs(dx) < 0.0000001f)
		return 0.f;
	else
		return atanf(dx / dy)*180.0f / 3.1415926;	
}

// 计算水平角
float getYaw(int noseX, int faceX, int faceWidth)
{
	float dx = noseX - faceX;
	float rate = dx / (faceWidth * 0.5f) - 1;
	return asinf(rate)*180/3.1415926; 
}

// 计算俯仰角
float getPitch(int noseY, int faceY, int faceHigh)
{
	float dy = noseY - faceY;
	float rate = dy / (faceHigh*0.6f) - 1;
	return asinf(rate)*180/3.1415926;
}

  • 3
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值