Tôi muốn phát hiện số lượng khuôn mặt trong khung máy ảnh phía trước. Tôi có thể phát hiện khuôn mặt khi tôi nhận được hình ảnh bằng cách sử dụng hình ảnh này: http://www.developer.com/ws/android/programming/face-detection-with-android-apis.html. Nhưng tôi không biết cách chụp ảnh bằng camera trước cứ sau 30 giây mà không có sự tương tác của người dùng. Có ai đó vui lòng giúp tôi không?Nhận diện khuôn mặt trong Android mà không cần tương tác người dùng
Trả lời
Mã sau sẽ chụp ảnh từ máy ảnh của bạn sau mỗi 5 giây.
if (TIMER_STARTED) {
multishotTimer.cancel();
multishotTimer.purge();
TIMER_STARTED = false;
} else {
multishotTimer = new Timer();
multishotTimer.schedule(new TimerTask() {
@Override
public void run() {
TIMER_STARTED = true;
Camera camera = surfaceView.getCamera();
camera.takePicture(null, null,
new HandlePictureStorage());
}
}, 1000, 5000L);
}
Ở đây, TIMER_STARTED là boolean đó cho biết timer đang chạy hay không.
Sau đây là mã cho HandlePictureStorage
private class HandlePictureStorage implements PictureCallback {
@Override
public void onPictureTaken(byte[] picture, final Camera camera) {
//do something when picture is captured...
}
}
Bạn nên được lên kế hoạch một RTC_WAKEUP
Alarm
sử dụng AlarmManager
, tại mỗi 30 giây, thiết lập một PendingIntent
đến Alarm
để khởi động một Service
và bên trong Service
bạn nên truy cập vào Camera
để chụp ảnh.
Bạn có lẽ nên xem bài đăng này: Open/Run camera from a background Service.
Bạn có thể tạo bằng tay một SurfaceView và xem trước camera vào nó như sau:
//First get a reference to the SurfaceView displaying the camera preview
cameraSurface = (SurfaceView) findViewById(R.id.cameraSurface);
cameraSurfaceHolder = cameraSurface.getHolder();
cameraSurfaceHolder.addCallback(cameraSurfaceHolderCallbacks);
.
.
.
private SurfaceHolder.Callback cameraSurfaceHolderCallbacks = new SurfaceHolder.Callback() {
@Override
public void surfaceDestroyed(SurfaceHolder holder) {
if(mCamera == null)return;
mCamera.stopPreview();
mCamera.release();
mCamera = null;
}
@Override
public void surfaceCreated(SurfaceHolder holder) {
try {
mCamera = Camera.open();
mCamera.setPreviewDisplay(holder);
} catch (Exception exception) {
if(mCamera == null)return;
mCamera.release();
mCamera = null;
}
}
@Override
public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {
Parameters cameraParameters = mCamera.getParameters();
cameraParameters.setPreviewSize(320, 240);
cameraParameters.setPictureSize(320, 240);
int avrgExposure = (cameraParameters.getMinExposureCompensation() + cameraParameters.getMaxExposureCompensation())/2;
cameraParameters.setExposureCompensation(avrgExposure);
mCamera.setParameters(cameraParameters);
mCamera.startPreview();
mCamera.takePicture(null, null, mPictureCallback);
}
};
Đừng quên thêm quyền camera thích hợp trong của bạn manifest:
<uses-permission android:name="android.permission.CAMERA"/>
Và cuối cùng nếu bạn đang sử dụng một thiết bị Android 4.0 trở lên, bạn có thể sử dụng phương pháp:
mCamera.startFaceDetection();
.
.
.
private FaceDetectionListener faceDetectionListener = new FaceDetectionListener() {
@Override
public void onFaceDetection(Face[] faces, Camera camera) {
//Faces have been detected...
}
};
.
.
.
mCamera.setFaceDetectionListener(faceDetectionListener);
Bạn có thể vào post này mà giải thích tất cả mọi thứ liên quan đến rằng chức năng cụ thể và thậm chí cung cấp một chức năng Android Source Code mà bạn có thể tải xuống để tự mình làm.
Trân trọng!
- 1. Gửi e-mail trong Android mà không cần người dùng tương tác
- 2. Nhận dạng khuôn mặt Android và nhận khuôn mặt tương tự từ cơ sở dữ liệu
- 3. Bắt đầu trò chuyện video mà không cần tương tác với người dùng - Android
- 4. Nhận diện khuôn mặt trong Java
- 5. Công nghệ nhận diện khuôn mặt và nhận dạng khuôn mặt trong điện thoạiGap
- 6. CamShift + Nhận diện khuôn mặt trong OpenCv
- 7. Nhận diện khuôn mặt với Kinect
- 8. Nhận diện khuôn mặt bằng OpenCV trên Android?
- 9. nhận diện khuôn mặt và cắt xén
- 10. Nhận diện khuôn mặt và khuôn mặt lão hóa trong C++
- 11. Tạo một người dùng postgres mới programatically, mà không cần sự can thiệp của tương tác
- 12. Có mô-đun cho python nhận diện khuôn mặt không?
- 13. Thư viện nhận dạng khuôn mặt trong android
- 14. nhận diện khuôn mặt không làm việc cho máy ảnh Mặt trận
- 15. Nhận diện khuôn mặt bằng OpenCV cho hình ảnh không phải mặt trước
- 16. Tương tác với các chuỗi giao diện người dùng trong Java/J2ME
- 17. Sử dụng excel làm giao diện người dùng mà không cần VB
- 18. Tính năng nhận diện khuôn mặt bằng cách sử dụng OpenCV Android
- 19. Đồng bộ hóa tác vụ mà không có chuỗi giao diện người dùng
- 20. AddJavascript tương tác bề mặt của Android trong iOS
- 21. Giao diện người dùng lịch trong android
- 22. Tương tác của người dùng trên UIImageView
- 23. Phát hiện khuôn mặt Android
- 24. Nhận dạng khuôn mặt trong R
- 25. Nhận dạng khuôn mặt trên iPhone
- 26. Android - Tính năng phát hiện khuôn mặt
- 27. Khuôn mặt, cảm xúc và nhận dạng giọng nói của con người
- 28. [iPhone] Vùng mà người dùng không thể tương tác, tại sao?
- 29. Chạy các tác vụ dài mà không đóng băng Giao diện người dùng
- 30. Xác thực tự động Soundcloud PHP Api mà không có sự tương tác của người dùng
Bạn không thể sử dụng Trình xử lý như thế này: this.refreshTimer = 30 * 1000; this.handlerFaceCapture = new Handler(); this.faceCapture = new FaceCaptureScheduler(); this.handlerFaceCapture .postDelayed (this.handlerFaceCapture, this.refreshTimer); Nó sẽ được thực hiện Scheduler mà phải thực hiện Runnable trên mỗi khoảng thời gian 30 giây. – Gilson