java - OpenCV HoughLines 只返回一行

标签 java opencv

我已将我的 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(标准的和概率的)将始终只返回一条线。

我错过了什么?

最佳答案

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

关于java - OpenCV HoughLines 只返回一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29872439/

相关文章:

javascript - 在nodejs中使用cv.readImage()和流

c++ - 强制Qt摄像机视频格式

Java 文本字段输入问题

java - 名称以前未按照 JSP.5.3 引入

java - 在赋值语句中获取返回类型

opencv - haar分类器中cascade.xml的解释

objective-c - 使用openCV在 objective-c 中进行模板匹配

c++ - opencv 使用 mask 和修复将一幅图像覆盖在另一幅图像上

java - 设置Java EE应用程序的授权

java - 使用JMX读取ejb list jar和ejb jar内的ejb-jar.xml