首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android Canny检测失败T_T

Android Canny检测失败T_T
EN

Stack Overflow用户
提问于 2017-03-22 12:51:37
回答 1查看 277关注 0票数 0

我使用AndroidStudio2.3版本

我使用OpenCV3.2为Android和android版本的手机是4.4.2

这是我的一些源代码。

请注意案例VIEW_MODE_CANNY

代码语言:javascript
复制
@Override
public Mat onCameraFrame(CameraBridgeViewBase.CvCameraViewFrame inputFrame) {

    final int viewMode = mViewMode;
    switch(viewMode){
        case VIEW_MODE_RGBA:
            mRgba = inputFrame.rgba();
            break;
        case VIEW_MODE_GRAY:
            Imgproc.cvtColor(inputFrame.gray(), mRgba, Imgproc.COLOR_GRAY2RGBA, 4);
            break;
        case VIEW_MODE_CANNY:
            try{
                Imgproc.cvtColor(mRgba, mGray, Imgproc.COLOR_RGBA2GRAY);
                Imgproc.GaussianBlur(mGray, mGray, new Size(5, 5), 2, 2);
                Imgproc.Canny(mGray, mIntermediateMat, 35, 75);
                Imgproc.cvtColor(mIntermediateMat, mRgba, Imgproc.COLOR_GRAY2BGRA, 4);
            }catch(Exception e){
                Log.i(TAG,e.toString());
                e.printStackTrace();
            }
            break;
    }
    return mRgba;
}

我的应用程序显示了3个不同的视图。灰色、颜色与Canny

灰色和颜色运行良好。

但如果我选择精明,它就会自动终止。

没有日志也没有例外

我甚至猜不出为什么

请给我小费..。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-03-22 14:46:12

在我看来,错误就在这一行:

代码语言:javascript
复制
 Imgproc.cvtColor(mRgba, mGray, Imgproc.COLOR_RGBA2GRAY);

应:

代码语言:javascript
复制
 Imgproc.cvtColor(inputFrame.rgba(), mGray, Imgproc.COLOR_RGBA2GRAY);     

它会崩溃,因为您将未初始化的输入映像提供给cvtColor。

顺便说一句,您的VIEW_MODE有点混乱:不清楚它是指您获得的输入类型,还是您想要生成的输出类型。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42952173

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档