[英]Face detection not working for Front Camera
所以基本上,我有這個代碼,
if(mCamera.getParameters().getMaxNumDetectedFaces()==0)
{
System.out.println("Face detection not avaliable");
}
else
{
System.out.println("Max faces: " + Integer.toString(mCamera.getParameters().getMaxNumDetectedFaces()));
}
mCamera.setFaceDetectionListener(new FaceDetectionListener() {
@Override
public void onFaceDetection(Face[] faces, Camera camera) {
// TODO Auto-generated method stub
System.out.println("Face detection callback called." + Integer.toString(faces.length));
}
});
在調用mCamera.startFaceDetection();
,調用回調,一切正常。 但是,如果我更換攝像頭,相同的代碼會導致回調永遠不會被調用。 getMaxNumDetectedFaces
,兩台攝像機都返回35,所以我認為前置攝像頭支持它。 我可以來回更換相機,每次調用此代碼,它將適用於后置攝像頭,但不適用於前置攝像頭。
還有什么我可能做錯了嗎?
相機的質量是否可能無法正常工作(前面的那個,對吧?)是否不足以使面部檢測工作? 相機的圖像可能太嘈雜,無法讓面部檢測器工作。 還有許多其他變量可能阻礙這一點。
同時搜索前置攝像頭,看起來前置攝像頭的點可能會被鏡像。 這在以下描述: http : //developer.android.com/reference/android/hardware/Camera.Face.html
我希望這有幫助。
有沒有辦法檢查是否正在讀取相機? Java在注冊網絡攝像頭等方面一直存在一些問題....或許會盡量確保您可以使用網絡攝像頭查看圖像。
順便說一下,如果您需要任何進一步的幫助,我們需要了解更多有關代碼的信息。 圖書館等....
此代碼將返回您的前置攝像頭的ID,對於其他人您可以更改camera.CameraInfo:
private int findFrontFacingCamera() {
int cameraId = -1;
// Search for the front facing camera
int numberOfCameras = Camera.getNumberOfCameras();
for (int i = 0; i < numberOfCameras; i++) {
Camera.CameraInfo info = new Camera.CameraInfo();
Camera.getCameraInfo(i, info);
if (info.facing == Camera.CameraInfo.CAMERA_FACING_FRONT) {
Log.d("FaceDetector", "Camera found");
cameraId = i;
break;
}
}
return cameraId;
}
我的代碼在我的Gallaxy平板電腦上運行但它不會調用拍攝照片,因此不會在其他設備中調用面部檢測,所以在搜索了一段時間之后我發現這個解決方案有效。 我在調用takePicture的類中添加了以下代碼:
camera.startPreview();
您可以使用Webcame從網絡攝像頭捕獲圖像。 它會自動檢測網絡攝像頭,因此無需額外配置網絡攝像頭。 它一次也支持多個網絡攝像頭。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.