【问题标题】:OpenCV HoughLines only ever returning one lineOpenCV HoughLines 只返回一行
【发布时间】:2015-07-04 12:44:07
【问题描述】:

我已将我的 OpenCV 开发从 Python 转移到 Java,以便在 Android 设备上使用它。第一步是移植一个相当简单的 Canny/HoughLines 算法。通过一些研究,我得出了以下结论:

    Mat lines = inputFrame.gray();

    Mat cny=new Mat();

    Imgproc.Canny(lines,cny,100,150);

    Mat lns = new Mat();

    Imgproc.HoughLinesP(cny, lns, 1, Math.PI/180, 50, 20, 20);
    Log.w("MainActivity",String.valueOf(lns.cols()));


    return cny;

此代码的问题在于它总是打印“1”或“0”行。从与我的 Python 代码相同的角度来看,它返回 100 行具有相同阈值和其他值的行,此代码返回一个。

我已尝试调整所有参数,但没有成功。从 Canny 返回的 Mat 显示出合理的边缘,但 HoughLines(标准和概率)将始终只返回一条线。

我错过了什么?

【问题讨论】:

  • 可以添加图片吗?原图,canny,检测到的线
  • 你也可以打印 nr 行吗?而在 c++ 中,返回类型通常是一个由 vec4b 元素组成的向量(数组),而不是一个 mat(虽然也可能)
  • 我遇到了同样的问题,运气好吗?

标签: java opencv


【解决方案1】:

Java 包装器中的行和列是不同的。而不是 .cols 使用 .rows 并且当你想要获取数据而不是 lines.get(0, i) 使用lines.get(i, 0)

【讨论】:

  • 谢谢。知道为什么在任何地方都没有记录吗?
  • 你拯救了我的一天。谢谢
猜你喜欢
  • 2020-11-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-01-03
  • 2011-05-15
  • 1970-01-01
相关资源
最近更新 更多