【问题标题】:CV exception in androidandroid中的CV异常
【发布时间】:2017-05-10 09:53:26
【问题描述】:

这是我遇到的异常

CvException [org.opencv.core.CvException: cv::Exception: /hdd2/buildbot/slaves/slave_ardbeg1/50-SDK/opencv/modules/imgproc/src/hough.cpp:712: 错误: (-5) 源图像必须是 8 位,在函数 CvSeq* cvHoughLines2(CvArr*, void*, int, double, double, int, double, double)中是单通道的

    mat = new Mat();
    edges = new Mat();
    lines = new Mat();
    mRgba = new Mat(612, 816, CvType.CV_8UC1);
    Utils.bitmapToMat(bitmap, mat);
    Imgproc.Canny(mat, edges, 50, 90);
    int threshold = 50;
    int minLineSize = 20;

    int lineGap = 20;
    try {

        Imgproc.HoughLines(mat, lines, 1, Math.PI / 180, threshold, minLineSize, lineGap);
        for (int x = 0; x < lines.cols(); x++) {
            double[] vec = lines.get(0, x);
            double x1 = vec[0], y1 = vec[1], x2 = vec[2], y2 = vec[3];
            Point start = new Point(x1, y1);
            Point end = new Point(x2, y2);
            Core.line(mRgba, start, end, new Scalar(255, 0, 0), 3);
        }
        Bitmap bmp = Bitmap.createBitmap(mRgba.cols(), mRgba.rows(), Bitmap.Config.ARGB_8888);
        Utils.matToBitmap(mRgba, bmp);
        bitmap = bmp;




    } catch (Exception e) {
        e.printStackTrace();
        System.out.println("e = " + e);
    }

【问题讨论】:

  • 你的opencv版本?解释你在做什么以及你想要什么。
  • openCV 2.4.3 版我试图检测图像中的线条
  • 有人帮帮我

标签: android opencv


【解决方案1】:

您在函数 HoughLines 中的图像不正确。您没有在将其放入函数之前对其进行格式化。

尝试像这样准备图像:

https://stackoverflow.com/a/7975315/5577679

【讨论】:

  • 无论如何我都设法得到了输出。你能告诉我如何从中获取行数吗?我的意思是计数
  • @San 不是 lines.cols() 吗?
  • @RickM。是的,我使用 lines.cols() 得到了行数
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-04
  • 1970-01-01
  • 2013-02-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多