Chcę wykryć liczby twarzy w przedniej ramie aparatu. Po wykryciu obrazu mogę wykryć twarz: http://www.developer.com/ws/android/programming/face-detection-with-android-apis.html. Ale nie wiem, jak zrobić zdjęcie za pomocą przedniego aparatu co 30 sekund bez interakcji użytkownika. Czy ktoś może mi pomóc?Wykrywanie twarzy w Androidzie bez interakcji użytkownika
Odpowiedz
Poniższy kod będzie rejestrować zdjęcie z aparatu po każdych 5 sekundach.
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);
}
Tutaj TIMER_STARTED jest logiczna, która wskazuje, czy zegar jest uruchomiony czy nie.
Poniżej kod HandlePictureStorage
private class HandlePictureStorage implements PictureCallback {
@Override
public void onPictureTaken(byte[] picture, final Camera camera) {
//do something when picture is captured...
}
}
Powinieneś zaplanujesz RTC_WAKEUP
Alarm
pomocą AlarmManager
, co 30 sekund, ustawić PendingIntent
do Alarm
uruchomienie Service
i wewnątrz Service
należy otworzyć Camera
do przechwytywania obrazu.
Powinieneś prawdopodobnie spojrzeć na ten post: Open/Run camera from a background Service.
Można utworzyć ręcznie do SurfaceView i podglądu kamery na nim następująco:
//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);
}
};
Nie zapomnij dodać odpowiednią zgodę kamerę w manifest:
<uses-permission android:name="android.permission.CAMERA"/>
I wreszcie, jeśli używasz urządzenia z Androidem 4.0 lub powyżej można użyć metody:
mCamera.startFaceDetection();
.
.
.
private FaceDetectionListener faceDetectionListener = new FaceDetectionListener() {
@Override
public void onFaceDetection(Face[] faces, Camera camera) {
//Faces have been detected...
}
};
.
.
.
mCamera.setFaceDetectionListener(faceDetectionListener);
Można pójść do tej post który wyjaśnia wszystko związane z tą funkcją, a nawet zapewnia funkcjonalny Android kod źródłowy, który można pobrać, aby zrobić to sam.
Pozdrawiam!
- 1. Wykrywanie twarzy UIImage
- 2. wykrywanie twarzy i przycinanie
- 3. Wykrywanie iOS wykrywania twarzy
- 4. Wykrywanie rodzaju twarzy
- 5. Wykrywanie i porównywanie twarzy
- 6. Wykrywanie twarzy w systemie Android?
- 7. Zrób zdjęcie automatycznie bez interakcji użytkownika
- 8. Porównywanie dwóch twarzy w Androidzie
- 9. Wysyłaj wiadomości e-mail w systemie Android bez interakcji użytkownika
- 10. Wykrywanie funkcji twarzy za pomocą OpenCV Android
- 11. Jak mogę zainstalować rozszerzenie Microsoft Edge bez interakcji użytkownika?
- 12. Automatyczne uwierzytelnianie Soundcloud PHP Api bez interakcji użytkownika
- 13. Android: Wykrywanie nieaktywności użytkownika/Wykrywanie klawiatury (z klawiatury programowej)
- 14. Jak stworzyć dynamiczny model twarzy użytkownika w systemie Android?
- 15. Wykrywanie ruchu użytkownika iOS użytkownika
- 16. blokowanie interakcji użytkownika z widokami podstawowymi
- 17. Rozwój iphone: wyłączanie interakcji użytkownika podczas animacji
- 18. AppleScript zwraca „Nie interakcji użytkownika dozwolone”
- 19. Wykrywanie opuszczania strony przez użytkownika
- 20. Wykrywanie twarzy OpenCV jest powolne na Raspberry Pi
- 21. Wykrywanie twarzy i jamy Javy i haaraskady - usta jak nos
- 22. Wykrywanie podczas roamingu jest wyłączony w Androidzie
- 23. Kalendarzowy interfejs użytkownika w Androidzie
- 24. Wyłączenie dotknięć, ale nie wszystkich interakcji użytkownika w UITextField
- 25. Wykrywanie wielkości palca użytkownika dotykowego
- 26. Wykrywanie kranu użytkownika po powiadomieniu
- 27. Przycinanie do twarzy z wykrywaniem twarzy
- 28. Jak automatycznie aktualizować nieprzerwanie działającą aplikację na Androida bez interakcji użytkownika
- 29. Rozpoznawanie twarzy w Javie
Nie można użyć programu obsługi w następujący sposób: this.refreshTimer = 30 * 1000; this.handlerFaceCapture = new Handler(); this.faceCapture = new FaceCaptureScheduler(); this.handlerFaceCapture .postDelayed (this.handlerFaceCapture, this.refreshTimer); Będzie wykonywał Harmonogram, który musi implementować Runnable w odstępach co 30 sekund. – Gilson