android - Android的位图不为空,但总是使nullpointerexception

标签 android opencv bitmap nullpointerexception

我正在为Android实现topcode +为Android实现opencv。
topcode用于获取屏幕上的标记位置。
在topcode中,扫描方法仅接受位图参数。
所以我将垫子转换为位图。

这是我的代码

private Scanner scanner;
private List<TopCode> codes;
//..........................
public Mat onCameraFrame(CvCameraViewFrame inputFrame) {
    // TODO Auto-generated method stub
    mRgb = inputFrame.rgba();

    Bitmap bmp = Bitmap.createBitmap(mRgb.cols(), mRgb.rows(),Bitmap.Config.ARGB_8888);


    try {
            Utils.matToBitmap(mRgb, bmp,true);

            if(bmp != null){


                codes = scanner.scan(bmp); ----> this giving null

            }


        } catch(Exception e) {

            e.printStackTrace();

    }

return mRgb;
}

这是错误日志
java.lang.NullPointerException
at com.example.ar.MainActivity.onCameraFrame(MainActivity.java:155)
at org.opencv.android.CameraBridgeViewBase.deliverAndDrawFrame(CameraBridgeViewBase.java:387)
at org.opencv.android.JavaCameraView$CameraWorker.run(JavaCameraView.java:328)
at java.lang.Thread.run(Thread.java:841)

我不知道现在该怎么办。请帮我。

最佳答案

您必须初始化扫描仪。您的bmp没问题,您已经在if语句中进行了检查。您可以这样初始化:(只需在try catch语句之前添加此行)

Scanner scanner = new Scanner(System.in);

关于android - Android的位图不为空,但总是使nullpointerexception,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28913386/

相关文章:

java - 如何保存自定义对象的数组列表,以便当我的 Android 应用程序关闭/重新启动时,数组列表保持不变

visual-studio-2008 - Visual Studio中有关退出声明的错误

image - 光流的简单案例

Android快捷方式位图启动器图标大小

java - 如何在 Android 中将 TableRow 宽度设置为最大?

android - 如何将数据从广播接收器发送到android中的 Activity

android - API 回调 URL 不适用于通过 Google Checkout 进行 Android 应用内购买

java - 内存泄漏ram java程序用opencv和处理

java 。运行和处理位图上每个像素的最快方法是什么?

c++ - 启用 Windows Aero 主题后如何在标题栏上绘制位图图标