OpenCV HoughLines只返回一行

时间:2015-04-26 00:50:42

标签: 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' 0线。从与我的Python代码相同的角度,它返回100个具有相同阈值和其他值的行,此代码返回一个。

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

我错过了什么?

1 个答案:

答案 0 :(得分:35)

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