Je suis en train de développer une application Android de reconnaissance d'image ... J'utilise la caméra personnalisée en utilisant la vue de surface .... As Here dans Android pour capturer des images ... Je veux traiter les images capturées en utilisant opencv, comment puis-je obtenir l'image capturée et la convertir en mat? est-il aussi un moyen de sauver l'image capturée temporaire? merci d'avanceOpenCv avec Android caméra Surfaceview
3
A
Répondre
2
Je suppose que vous avez ajouté la bibliothèque opencv à votre projet avec succès.
Voici un exemple de code utilisant OpenCV4android.
public class SampleCameraFrameAccessActivity extends Activity implements CvCameraViewListener2, OnTouchListener{
private static final String TAG = "SampleCameraFrameAccessActivity";
protected CameraBridgeViewBase cameraPreview;
protected Mat mRgba;
protected BaseLoaderCallback mLoaderCallback = new BaseLoaderCallback(this) {
@Override
public void onManagerConnected(int status) {
switch (status) {
case LoaderCallbackInterface.SUCCESS:
{
Log.i(TAG, "OpenCV loaded successfully");
// mOpenCvCameraView.enableView();
// mOpenCvCameraView.setOnTouchListener(ColorRegionDetectionActivity.this);
cameraPreview.enableView();
} break;
default:
{
super.onManagerConnected(status);
} break;
}
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.camera_sample_layout);
cameraPreview = (CameraBridgeViewBase) findViewById(R.id.sample_test_camera_view);
cameraPreview.setCvCameraViewListener(this);
}
@Override
protected void onDestroy() {
// TODO Auto-generated method stub
super.onDestroy();
}
@Override
protected void onPause() {
// TODO Auto-generated method stub
super.onPause();
if(cameraPreview != null){
cameraPreview.disableView();
}
}
@Override
protected void onResume() {
// TODO Auto-generated method stub
super.onResume();
OpenCVLoader.initAsync(OpenCVLoader.OPENCV_VERSION_2_4_3, this, mLoaderCallback);
}
@Override
public void onCameraViewStarted(int width, int height) {
// TODO Auto-generated method stub
mRgba = new Mat(height, width, CvType.CV_8UC4);
}
@Override
public void onCameraViewStopped() {
// TODO Auto-generated method stub
mRgba.release();
}
@Override
public Mat onCameraFrame(CvCameraViewFrame inputFrame) {
// TODO Auto-generated method stub
mRgba = inputFrame.rgba();
return mRgba;
}
@Override
public boolean onTouch(View v, MotionEvent event) {
// TODO Auto-generated method stub
return false;
}
}
Et le fichier de mise en page XML est:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/sample_test_layout" >
<org.opencv.android.JavaCameraView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/sample_test_camera_view" />
</RelativeLayout>
Dans la méthode onCameraFrame vous pouvez accéder à toutes les images de la mémoire tampon d'image de la caméra. Si vous voulez capturer une image, vous pouvez ajouter un bouton et prendre une image particulière du tampon et la traiter. Le cadre est donné en tant qu'objet Mat par défaut. Il n'est donc pas nécessaire de le convertir. après le traitement, si vous en avez besoin pour convertir en bitmap, vous pouvez appeler Utils.matToBitmap (mat, bmp); méthode pour le faire.
Questions connexes
- 1. Caméra Android SurfaceView prendre la photo
- 2. Zoom caméra dans SurfaceView-Preview
- 3. Android: SurfaceView unique vs plusieurs SurfaceView
- 4. Caméra non ouverte - Initialisation statique sur OpenCV Android
- 5. OpenCV pour Android: caméra native autofocus
- 6. Android SurfaceView ou API Camera2 pour l'aperçu de la caméra
- 7. calibration Caméra OpenCV python
- 8. Android Appareil photo SurfaceView Orientation
- 9. OpenCV + VideoInput.lib Caméra HD
- 10. Comment utiliser une caméra avec OpenCV
- 11. Reconstruction 3D OpenCV avec 1 caméra
- 12. Android Dev: AlertDialog avec SurfaceView
- 13. android aperçu de la caméra avec textview
- 14. OpenCV pas l'initialisation caméra USB
- 15. Recadrer une image sur surfaceView android
- 16. Activité Android avec caméra
- 17. Android SurfaceView Problème
- 18. Android SurfaceView dessin
- 19. OpenCV C++ avec Android
- 20. android jeu surfaceview avec framelayout lent
- 21. Android SurfaceView onDraw Question
- 22. android - widget surfaceview?
- 23. Android - Admob SurfaceView
- 24. Android SurfaceView largeur/hauteur
- 25. Effacer SurfaceView dans android
- 26. SoftKeyboard Android sur SurfaceView
- 27. Superposition vidéo Android SurfaceView
- 28. en utilisant la caméra interne à travers SurfaceView
- 29. thread multiple avec SurfaceView
- 30. Android capture photo opencv