2012-11-15 36 views
10

Vì vậy, về cơ bản, tôi có mã này,nhận diện khuôn mặt không làm việc cho máy ảnh Mặt trận

 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)); 


      } 


     }); 

Sau khi gọi mCamera.startFaceDetection();, gọi lại được gọi là, mọi thứ hoạt động như bình thường. Tuy nhiên, nếu tôi thay đổi máy ảnh, cùng một mã kết quả trong cuộc gọi lại không bao giờ được gọi. Các getMaxNumDetectedFaces, trả về 35 cho cả hai máy ảnh, vì vậy tôi giả sử hỗ trợ của nó trên camera phía trước. Tôi có thể thay đổi máy ảnh qua lại, gọi mã này mỗi lần và nó sẽ hoạt động cho máy ảnh sau chứ không phải máy ảnh phía trước.

Có điều gì khác mà tôi có thể đang làm sai không?

+0

Bạn đã tìm ra điều này? Tôi thấy điều tương tự. – Liron

+0

chỉ cần kiểm tra nếu bạn đã tìm ra điều này. Tôi có cùng một hành vi trên Motorola XT910 của tôi và tôi tự hỏi nếu tôi cần phải thử nó trên một thiết bị khác nhau hoặc nếu đó là một vấn đề với mã của tôi trên tất cả các thiết bị. – Liron

Trả lời

0

Có cách nào để kiểm tra xem máy ảnh có đang đọc không? Java đã luôn luôn có một số vấn đề trong việc đăng ký cam web vv .. Có lẽ cố gắng để đảm bảo rằng bạn có thể xem hình ảnh với webcam.

Btw, nếu bạn muốn được trợ giúp thêm, chúng tôi cần biết thêm về mã. thư viện, v.v.

+0

Có, máy ảnh đang được đọc, máy ảnh hiển thị bản xem trước trên màn hình. Tôi nghĩ bạn có thể bối rối. Bạn nói webcam, nhưng đây là android, máy ảnh là một phần của thiết bị. Thư viện chỉ là SDK Android chuẩn. – Kratz

-2

Bạn có thể sử dụng Webcame để chụp ảnh từ webcam. nó tự động phát hiện webcam vì vậy không cần phải cấu hình thêm cho webcam. nó cũng hỗ trợ nhiều hơn một webcam cùng một lúc.

+1

** - 1 ** Đây là câu hỏi ** Android **. – michaelb958

1

Có thể chất lượng của máy ảnh không hoạt động (mặt trước, phải không?) Không đủ chính xác để phát hiện khuôn mặt có hoạt động không? Hình ảnh của máy ảnh có thể quá ồn đối với bộ dò tìm khuôn mặt hoạt động. Có rất nhiều biến khác có thể cản trở điều này.

Cũng thực hiện tìm kiếm camera trước, có vẻ như các điểm camera phía trước có thể được nhân đôi. Điều này được mô tả trong: http://developer.android.com/reference/android/hardware/Camera.Face.html

Tôi hy vọng điều này sẽ hữu ích.

0

Mã này sẽ trả lại id của máy ảnh phải đối mặt với Mặt trận của bạn, cho người khác, bạn có thể thay đổi 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; 
} 

tôi đã mã mà làm việc trên máy tính bảng Gallaxy của tôi, nhưng nó wouldnt gọi foto mất và kết quả là sẽ không gọi phát hiện khuôn mặt trong các thiết bị khác, vì vậy sau khi tìm kiếm một lúc, tôi đã tìm thấy giải pháp này hoạt động. Tôi đã thêm mã sau vào lớp trong đó takePicture được gọi là:

camera.startPreview(); 
Các vấn đề liên quan