onCameraFrame似乎不起作用

时间:2014-07-20 02:56:54

标签: android opencv

我尝试将列表绘制为按钮。 但是,当我按下其中任何一个时,我的应用程序都没有任何操作。

这是我的代码:

 public Mat onCameraFrame(CvCameraViewFrame inputFrame) {
    final int viewMode = mViewMode;
    Log.i("test", "onCameraFrame");
    switch (viewMode) {
    case VIEW_MODE_GRAY:
        title.setText("J");
        break;
    case VIEW_MODE_RGBA:
        break;
}
   return mRgba;
}

public boolean onOptionsItemSelected(MenuItem item) {

        if (item == mItemMode1) {
            mViewMode = VIEW_MODE_1;
        } else if (item == mItemMode2) {
            mViewMode = VIEW_MODE_2;
        } else if (item == mItemMode3) {
            mViewMode = VIEW_MODE_3;
        } else if (item == mItemModeRTDemo) {
            mViewMode = VIEW_MODE_RTDemo;
        }

        return true;
    }

实际上,我删除了private CameraBridgeViewBase mOpenCvCameraView;。在删除CamaraBridgeViewBase之前,我的列表工作正常。我不知道问题是否与我的行为有关。

Down是我的xml文件

<RelativeLayout 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" >

 <org.opencv.android.JavaCameraView
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"

    opencv:show_fps="true"
    opencv:camera_id="any"
    android:id="@+id/tutorial2_activity_surface_view" />

 <org.opencv.android.NativeCameraView
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"

    android:id="@+id/tutorial1_activity_native_surface_view"
    opencv:show_fps="true"
    opencv:camera_id="any" />

 <TextView
     android:id="@+id/title"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:layout_alignParentLeft="true"
     android:layout_alignParentTop="true"
     android:layout_marginLeft="39dp"
     android:text="title"
     android:textAppearance="?android:attr/textAppearanceMedium" />

1 个答案:

答案 0 :(得分:1)

onCameraFrame()应返回Mat,但您的代码不会。

你需要像

这样的东西
public Mat onCameraFrame(CvCameraViewFrame inputFrame) {
    final int viewMode = mViewMode;
    Log.i("test", "onCameraFrame");
    switch (viewMode)
    {
    case VIEW_MODE_GRAY:
        title.setText("J");
        return inputFrame.gray();
    case VIEW_MODE_RGBA:
        return inputFrame.rgba();
    }
}