在this simple example之后,我将人脸检测合并到我的照片应用程序中。
为了简单起见,我删除了所有形状绘图的内容,只是在寻找API来计算照片中头部的数量。
使用前置摄像头拍摄照片时,始终如一且不会出现任何面孔。
此外,每次我运行代码时,日志中都会出现一个非常可疑的警告(该警告似乎与我正在执行的操作没有任何关系,但是每次都会出现-警告是:
W/ResourcesManager: Asset path '/system/framework/com.android.media.remotedisplay.jar' does not exist or contains no resources.
W/ResourcesManager: Asset path '/system/framework/com.android.location.provider.jar' does not exist or contains no resources.
这是我的代码
照片回调
PictureCallback jpegCallback = new PictureCallback() {
public void onPictureTaken(byte[] data, Camera camera) {
try {
BitmapFactory.Options options = new BitmapFactory.Options();
options.inPreferQualityOverSpeed = true;
options.inPreferredConfig = Bitmap.Config.ARGB_8888;
options.inPurgeable = true;
options.inInputShareable = true;
options.inMutable = true;
Bitmap temp = BitmapFactory.decodeByteArray(data, 0,
data.length, options);
countHeads(temp);
} catch (Exception e) {
Log.d(TAG, "onPictureTaken callback failed : " + e);
}
}
};
总柜台
private void countHeads(Bitmap b){
Frame frame = new Frame.Builder().setBitmap(b).build();
FaceDetector faceDetector = new FaceDetector.Builder(getApplicationContext()).setTrackingEnabled(false)
.build();
if(!faceDetector.isOperational()){
BPCAlertDialog.alert(this, "Can't build face detection");
return;
}
SparseArray<Face> faces = faceDetector.detect(frame);
//this always prints 0
Log.d(TAG, "I COUNT " + faces.size() + " FACES IN THIS PHOTO");
}
最佳答案
事实证明,问题在于即使“活动”设置为“风景”,我还是侧着拍照(手持手机为纵向)。对于具体的限制,我还没有进行全面的自省,但是似乎需要将面孔与预期的方向对齐。我将在发现更多内容时添加到此答案中。
关于android - 人脸检测不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33509217/