OpenCV HoughLines只返回一行

mag*_*lex 10 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;
Run Code Online (Sandbox Code Playgroud)

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

我试过调整所有参数,没有运气.Canny返回的Mat显示合理的边缘,但HoughLines(标准的和概率的)总是只返回一行.

我错过了什么?

小智 35

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