zoukankan      html  css  js  c++  java
  • 安卓使用ImageView显示OpenCV-Mat

             Android 的Application—native调试暂时还只能进行主线程调试,在GDB里面,运行于子线程的OpenCv数据处理过程不能直接调试,OPenCV-Native函数    public Mat onCameraFrame(CvCameraViewFrame inputframe){} 是运行于子线程的,暂时还找不到调试的方法。并且,自己编写的子函数若是嵌入onCameraFrame()函数,也不能进行Native调试,因此是一个令人忧桑的开发过程。

            对OpenCvMat 型进行测试,C++的Highgui显示函数是无效的,因为窗口不能直接从Android界面弹出。需要使用imageview进行显示以便查看图像处理的结果,因此我借鉴了少许代码:

    @SuppressLint("SdCardPath")
    private int trackTestCv()
    {
            String filename ="/sdcard/DevCv/Picture/";
    	 filename += 1 + ".jpg";
        	Mat frame =Highgui.imread(filename);
        	Mat frameRf = new Mat(frame.rows(),frame.cols(),CvType.CV_8UC3);
    
            Bitmap bmp= null;
            bmp =Bitmap.createBitmap( frame.width(),  frame.height(),  Bitmap.Config.ARGB_8888);
    
            covMat2bm(frameRf,bmp);
            
            mImageView.setImageBitmap( bmp );
            mImageView.invalidate();
            mImageView.setVisibility(View.VISIBLE);
    }
    
    private int covMat2bm(Mat mat,Bitmap bm)
    {
       Utils.matToBitmap(mat, bm);
       return 1;
    }

    函数解释:

    mImageView
    为一个imageview控件,使用前先获取ID

    注意事项:事件的更新是遵循事件响应进行的,在一个写死的循环里对imageview进行更新是不改变显示效果的


  • 相关阅读:
    BZOJ 1492 [NOI2007]货币兑换Cash
    BZOJ 2285 [Sdoi2011]保密
    BZOJ 2962 序列操作
    BZOJ 3197 [Sdoi2013]assassin
    BZOJ 3131 [Sdoi2013]淘金
    BZOJ 3532 [Sdoi2014]Lis
    BZOJ 1923 [Sdoi2010]外星千足虫
    BZOJ 4855 [Jsoi2016]轻重路径
    BZOJ 4289 PA2012 Tax
    微信开发之 微信支付
  • 原文地址:https://www.cnblogs.com/wishchin/p/9200138.html
Copyright © 2011-2022 走看看