如何在Android OpenCV中捕获图像

Somesh随机播放

我正在图像处理项目中工作,现在有一个问题,我导入了OpenCV库,然后将RGB帧转换为二进制帧。现在我不知道如何捕获二进制图像并将其存储在数据库中。没有有关OpenCV库的教程。因此,任何人都可以帮助我解决问题。我的编码如下。

public class MainActivity extends AppCompatActivity implements View.OnTouchListener,CameraBridgeViewBase.CvCameraViewListener2 {

private static final String TAG = MainActivity.class.getCanonicalName();
private CameraBridgeViewBase mOpenCvCameraView;
private Mat mRgba;
private Scalar mBlobColorHsv;
private Scalar mBlobColorRgba;

private Mat mIntermediateMat;
private Mat mGray;
Mat hierarchy;


List<MatOfPoint> contours;


private 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(MainActivity.this);
            }
            break;
            default: {
                super.onManagerConnected(status);
            }
            break;

        }
    }

};
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);


    mOpenCvCameraView=(CameraBridgeViewBase)findViewById(R.id.opencv_tutorial_activity_surface_view);
    mOpenCvCameraView.setVisibility(SurfaceView.VISIBLE);
    mOpenCvCameraView.setCvCameraViewListener(this);
}
@Override
public void onPause(){
    super.onPause();
    if(mOpenCvCameraView!=null)
        mOpenCvCameraView.disableView();
}
@Override
public void onResume(){
    {
        super.onResume();
        if(!OpenCVLoader.initDebug()) {
            OpenCVLoader.initAsync(OpenCVLoader.OPENCV_VERSION_2_4_2, this, mLoaderCallback);
        }
        else{
            mLoaderCallback.onManagerConnected(LoaderCallbackInterface.SUCCESS);
        }
    }
}
@Override
public void onDestroy(){
    super.onPause();
    if(mOpenCvCameraView!=null)
        mOpenCvCameraView.disableView();
}

@Override
public boolean onTouch(View v, MotionEvent event) {

    return false;
}


@Override
public void onCameraViewStarted(int width, int height) {
    mRgba=new Mat();
    mBlobColorRgba=new Scalar(255);
    mBlobColorHsv=new Scalar(255);
    mRgba = new Mat(height, width, CvType.CV_8UC4);
    mIntermediateMat = new Mat(height, width, CvType.CV_8UC4);
    mGray = new Mat(height, width, CvType.CV_8UC1);
    hierarchy = new Mat();
}

简而言之,我想做的是创建一个按钮,然后在onclick方法中我要捕获图像并必须显示图像预览。请有人帮助我解决此问题。提前致谢。

尼扎·西瓦勒(Niza Siwale)

如果要预览图像,则必须将垫子转换为位图,然后在ImageView中显示它。您可以设置CvCameraViewListener来接收位图。像这样

    private Mat mat;
    private boolean showPreviews;
        private BaseLoaderCallback mLoaderCallback=new BaseLoaderCallback(this) {
            @Override
            public void onManagerConnected(int status) {
                switch (status) {
                    case LoaderCallbackInterface.SUCCESS: {
                        Log.i(TAG, "OpenCV loaded successfully");
                      someButton.setOnclickListener(new View.OnclickListener(View v){
                               showPreviews = !showPreviews;
});
                        mOpenCvCameraView.enableView();
                        mOpenCvCameraView.setOnTouchListener(MainActivity.this);
        mOpenCvCameraView.setCvCameraViewListener(MainActivity.this);

                    }
                    break;
                    default: {
                        super.onManagerConnected(status);
                    }
                    break;

                }
            }

        };

        @Override
            public void onCameraViewStarted(int width, int height) {
                // TODO Auto-generated method stub

            }
            @Override
            public void onCameraViewStopped() {
                // TODO Auto-generated method stub

            }
            @Override
            public Mat onCameraFrame(CvCameraViewFrame inputFrame) {
                // TODO Auto-generated method stub
               if(!showPreviews)
      mat = inputFrame.rgba();
           // you can return a modified mat if you want to display it in opencv
                return mat;
            }

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用 OpenCV 在 Android Studio 中捕获图像

来自分类Dev

如何在Fragment Android中捕获图像

来自分类Dev

在Android中捕获图像

来自分类Dev

如何在Android中结合叠加位图和捕获的图像?

来自分类Dev

如何在ImageView中显示捕获的图像?

来自分类Dev

列出android中捕获图像的图像Url

来自分类Dev

如何在OpenCV中锐化图像

来自分类Dev

如何在OpenCV中融合多个图像?

来自分类Dev

如何在Linux中的Python中捕获gtk ApplicationWindow的图像?

来自分类Dev

在Android中使用Surfaceview类捕获后如何在imageview中显示图像

来自分类Dev

如何在Android中的相机捕获图像上设置实时帧

来自分类Dev

如何在opencv python中捕获整个窗口的鼠标移动?

来自分类Dev

在OpenCV中具有深度和rgb Mat时如何显示3D图像(从Kinect捕获)

来自分类Dev

android中的OpenCV图像处理

来自分类Dev

如何使用片段中的相机在 xamarin android 中捕获图像

来自分类Dev

如何在Java中捕获桌面屏幕的图像?

来自分类Dev

如何在iOS中以阵列形式添加相机捕获图像

来自分类Dev

如何在本机反应中水平查看多个捕获图像?

来自分类Dev

如何在 REALM 中存储捕获的图像路径?

来自分类Dev

如何在Android中使用坐标捕获图像

来自分类Dev

设置在Android中捕获的图像的尺寸

来自分类Dev

android:issue在gridview中显示捕获的图像

来自分类Dev

在Surfaceview Android中捕获图像后如何重新加载相机?

来自分类Dev

如何从相机中捕获图像片段

来自分类Dev

如何在OpenCV中过滤图像中的小片段?

来自分类Dev

如何在OpenCV Java中消除图像中的噪点

来自分类Dev

如何在OpenCV中过滤图像中的小片段?

来自分类Dev

如何在Android中裁剪图像?

来自分类Dev

如何在ImageView中闪烁图像(Android)

Related 相关文章

  1. 1

    如何使用 OpenCV 在 Android Studio 中捕获图像

  2. 2

    如何在Fragment Android中捕获图像

  3. 3

    在Android中捕获图像

  4. 4

    如何在Android中结合叠加位图和捕获的图像?

  5. 5

    如何在ImageView中显示捕获的图像?

  6. 6

    列出android中捕获图像的图像Url

  7. 7

    如何在OpenCV中锐化图像

  8. 8

    如何在OpenCV中融合多个图像?

  9. 9

    如何在Linux中的Python中捕获gtk ApplicationWindow的图像?

  10. 10

    在Android中使用Surfaceview类捕获后如何在imageview中显示图像

  11. 11

    如何在Android中的相机捕获图像上设置实时帧

  12. 12

    如何在opencv python中捕获整个窗口的鼠标移动?

  13. 13

    在OpenCV中具有深度和rgb Mat时如何显示3D图像(从Kinect捕获)

  14. 14

    android中的OpenCV图像处理

  15. 15

    如何使用片段中的相机在 xamarin android 中捕获图像

  16. 16

    如何在Java中捕获桌面屏幕的图像?

  17. 17

    如何在iOS中以阵列形式添加相机捕获图像

  18. 18

    如何在本机反应中水平查看多个捕获图像?

  19. 19

    如何在 REALM 中存储捕获的图像路径?

  20. 20

    如何在Android中使用坐标捕获图像

  21. 21

    设置在Android中捕获的图像的尺寸

  22. 22

    android:issue在gridview中显示捕获的图像

  23. 23

    在Surfaceview Android中捕获图像后如何重新加载相机?

  24. 24

    如何从相机中捕获图像片段

  25. 25

    如何在OpenCV中过滤图像中的小片段?

  26. 26

    如何在OpenCV Java中消除图像中的噪点

  27. 27

    如何在OpenCV中过滤图像中的小片段?

  28. 28

    如何在Android中裁剪图像?

  29. 29

    如何在ImageView中闪烁图像(Android)

热门标签

归档