添加按钮时,android opencv崩溃

瓦莱里奥·泰斯塔(Valerio Testa)

我是上下文android的初学者。比起我写的一个android项目,它使用opencv从前置摄像头捕获帧,最后只需借助2个按钮即可将帧转换为灰度或rbga。当时的想法是,当单击按钮“ GrayScale”时,图像将进行灰度转换,以此类推,以便进行rgba转换,但是当我要在项目中添加按钮时,我的应用程序就会崩溃。

java文件的基本方法:

//variables
protected static final String TAG = null;
private Camera camera;
private CameraBridgeViewBase mOpenCvCameraView;
private CvCameraViewFrame inputFrame;
private int CameraMod,GrayScale=0,RGBA=0;
private Button button1,button2;
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();
                break;
            }
            default:
            {
                super.onManagerConnected(status);
                break;
            }
        }
    }
};
@Override
protected void onCreate(Bundle savedInstanceState) 
{
    Log.i(TAG,"called onCreate");
    super.onCreate(savedInstanceState);
    getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
    button1 = (Button) findViewById(R.id.GrayScale);
    button2 = (Button) findViewById(R.id.RGBA);
    button1.setOnClickListener(new View.OnClickListener() 
    {
        @Override
        public void onClick(View v) 
        {
            // TODO Auto-generated method stub
            GrayScale=1;
            RGBA=0;
        };
    });
    button2.setOnClickListener(new View.OnClickListener() 
    {   
        @Override
        public void onClick(View v) 
        {
            // TODO Auto-generated method stub
            RGBA=1;
            GrayScale=0;
        };
    });
    setContentView(R.layout.activity_main);
    mOpenCvCameraView = (CameraBridgeViewBase) findViewById(R.id.HelloOpenCvView);
    mOpenCvCameraView.setVisibility(SurfaceView.VISIBLE);
    CameraMod=camera.getNumberOfCameras();
    if (CameraMod >= 2)
    {
        mOpenCvCameraView.setCameraIndex(CameraBridgeViewBase.CAMERA_ID_FRONT);
    }
    else 
    {
        mOpenCvCameraView.setCameraIndex(CameraBridgeViewBase.CAMERA_ID_BACK);
    }
    mOpenCvCameraView.setCvCameraViewListener(this);
}
@Override
public Mat onCameraFrame(CvCameraViewFrame inputFrame) 
{
    Mat image = null;
    if (GrayScale==1)
    {
        image = inputFrame.gray();
    }
    if (RGBA==1)
    {
        image = inputFrame.rgba();
    }
    if (CameraMod >= 2)
    {
        Core.flip(image, image, 1);
    }


    return image;
};

xml文件包含按钮:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:opencv="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<Button 
    android:text="GrayScale"
    android:id="@+id/GrayScale"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"/>      
<Button 
    android:text="RGBA"
    android:id="@+id/RGBA"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"/>

<org.opencv.android.JavaCameraView
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:visibility="gone"
    android:id="@+id/HelloOpenCvView"
    opencv:show_fps="true"
    opencv:camera_id="any" />

雄激素的

您是setContentView()通过引用了您的视图后调用的findViewById(),这是错误的。您的视图(即按钮)必定为空。setContentView()在通过查找视图之前,请确保致电findViewById()

@Override
protected void onCreate(Bundle savedInstanceState) 
{
    Log.i(TAG,"called onCreate");
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
    // Other code
}

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

添加按钮时应用程序崩溃 - Android

来自分类Dev

添加按钮时应用崩溃-活动中同时包含按钮和列表视图

来自分类Dev

启动时添加按钮单击事件使应用程序崩溃

来自分类Dev

Android-添加按钮后,应用程序不断崩溃

来自分类Dev

OpenCV Mat在push_back时崩溃

来自分类Dev

当OpenCV中的图片太大时,Qt崩溃

来自分类Dev

10秒后,opencv android崩溃

来自分类Dev

OpenCV Android在Imgproc.cvtColor()上崩溃

来自分类Dev

通过活动使用OpenCV时Android崩溃

来自分类Dev

OpenCV Android应用程序在新活动时崩溃

来自分类Dev

使用Android片段时在ActivityResult上添加按钮

来自分类Dev

退出时,OpenCV程序使linux崩溃(使用cvtColor)

来自分类Dev

使用 OpenCv 读取图像时 Python 在控制台上崩溃

来自分类Dev

在OpenCV Core.DCT()方法上崩溃Android程序

来自分类Dev

悬停时Coffeescript添加按钮

来自分类Dev

元素类型在添加按钮时无效

来自分类Dev

添加按钮时不兼容的类型

来自分类Dev

按返回按钮时,Android runOnUiThread崩溃

来自分类Dev

Android-单击图像按钮时崩溃

来自分类Dev

按下后退按钮时崩溃 - Android

来自分类Dev

Android向片段添加按钮

来自分类Dev

在Android的操作栏中添加按钮?

来自分类Dev

Android-在LinearLayout外部添加按钮

来自分类Dev

在Android的操作栏中添加按钮?

来自分类Dev

Android向片段添加按钮

来自分类Dev

在Android操作栏中添加按钮

来自分类Dev

在android中的gridview下方添加按钮

来自分类Dev

Android studio,如何给标签添加按钮

来自分类Dev

Android:以编程方式添加ImageView时崩溃?