【发布时间】: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(虽然也可能)
-
我遇到了同样的问题,运气好吗?