xiaoyaoyou1212 / ViseFace

简易人脸检测库,不依赖三方库,可快速接入人脸检测功能。
http://www.huwei.tech/
Apache License 2.0
203 stars 45 forks source link

横屏状态下 预览框变形 #2

Closed 1525685999 closed 6 years ago

1525685999 commented 6 years ago

调用时将activty设置为横屏 ,幕布显示的图像是拉大了的

1525685999 commented 6 years ago

大神 ,我是要在安卓电视机上使用,等于是在强制为横屏的activty上使用,请问一下我该怎么做呢?

1525685999 commented 6 years ago

/ if (cameraPreview != null) { if (tempW >= width) { cameraPreview.setLayoutParams(new FrameLayout.LayoutParams(tempW, height)); scale = tempW / h; } else if (tempH >= height) { cameraPreview.setLayoutParams(new FrameLayout.LayoutParams(width, tempH)); scale = tempH / w; } else { cameraPreview.setLayoutParams(new FrameLayout.LayoutParams(width, height)); } }/

我将这一部分代码注释掉后,横向的activty 的预览显示是正常了,但是却检测不到人脸

1525685999 commented 6 years ago

大神 您能稍微指点一下吗

1525685999 commented 6 years ago

_15236252515613

设置Activty横屏状态下 会进入第二个else if中去 ,这时候,展示的效果被拉伸的很模糊,如果直接使用最后一个else里面的判断 则显示正常,但是 却不能检测到人脸了 @xiaoyaoyou1212 能麻烦您给我这个新手稍微解惑一下吗?万分感谢~

1525685999 commented 6 years ago

关于上面几个问题 我有了新的进展 ,初始化相机时判断anctivty的方向 为横屏时camera.setDisplayOrientation(result); 参数给90,然后用楼上那张图最后的结果选中 cameraPreview.setLayoutParams(new FrameLayout.LayoutParams(width, height)); 接线来在SystemFaceDetector 这个类中 image 把这个条件degrees改为90,之前是0,我试了,必须为90才能够监测到人脸,改了上述的那些条件后,现在还有一个问题 就是绘制人脸框时 没有绘制出来,您有空能稍微指点一两下吗?万分感谢您的这个库,还有代码的封装,受益良多

xiaoyaoyou1212 commented 6 years ago

@1525685999 不好意思哈,最近一直没有看GitHub,横屏的话相机的方向改变了,所以需要旋转90度,绘制的人脸框其实就是把识别到的坐标展示出来,你可以将坐标点打印出来仔细观察一下看看,应该就能找到问题原因了。

1525685999 commented 6 years ago

项目难点终于搞定了,谢谢您提供的代码,给了我很大的参考与帮助,帮助非常之大,谢谢~