我正在处理一些图像,我的UGV(无人地面车辆)捕捉它以使其在一条线上移动。线路检测|使用Java进行角度检测
我想根据地平线得到那条线的角度。我会尝试用一些例子来解释:
上面的图像将让我的UGV直行保持,随着角度约为90度。 但下面将使其左转,作为compaired地平线的夹角约舍120
我能成功地将这些图像在图像下方采用大津的阈值:
而且还使用边缘检测算法得到这个:
但我坚持现在试图找到detecs那些边缘/线条和输出的算法 - 或者帮我输出 - 这种线的角度..
我正在处理一些图像,我的UGV(无人地面车辆)捕捉它以使其在一条线上移动。线路检测|使用Java进行角度检测
我想根据地平线得到那条线的角度。我会尝试用一些例子来解释:
上面的图像将让我的UGV直行保持,随着角度约为90度。 但下面将使其左转,作为compaired地平线的夹角约舍120
我能成功地将这些图像在图像下方采用大津的阈值:
而且还使用边缘检测算法得到这个:
但我坚持现在试图找到detecs那些边缘/线条和输出的算法 - 或者帮我输出 - 这种线的角度..
这里的使用ImageJ我尝试:
// Open the Image
ImagePlus image = new ImagePlus(filename);
// Make the Image 8 bit
IJ.run(image, "8-bit", "");
// Apply a Threshold (0 - 50)
ByteProcessor tempBP = (ByteProcessor)image.getProcessor();
tempBP.setThreshold(0, 50, 0);
IJ.run(image, "Convert to Mask", "");
// Analyze the Particles
ParticleAnalyzer pa = new ParticleAnalyzer(
ParticleAnalyzer.SHOW_MASKS +
ParticleAnalyzer.IN_SITU_SHOW,
1023 +
ParticleAnalyzer.ELLIPSE
, rt, 0.0, 999999999, 0, 0.5);
IJ.run(image, "Set Measurements...", "bounding fit redirect=None decimal=3");
pa.analyze(image);
int k = 0;
double maxSize = -1;
for (int i = 0; i < rt.getCounter(); i ++) {
// Determine creteria for best oval.
// The major axis should be much longer than the minor axis.
// let k = best oval
}
double bx = rt.getValue("BX", k);
double by = rt.getValue("BY", k);
double width = rt.getValue("Width", k);
double height = rt.getValue("Height", k);
// Your angle:
double angle = rt.getValue("Angle", k);
double majorAxis = rt.getValue("Major", k);
double minorAxis = rt.getValue("Minor", k);
代码是如何工作的:
这里是什么样的形象看起来,当我分析它像一个例子:
注意:代码是未经测试。我只是将我在Visual ImageJ中所做的转换为Java。
AWESOOOMMEEE !!!非常感谢!!! 虽然我得到了一些排队:1)你是如何从imageJ生成这样的代码? 2)我将在Android上运行它,你有任何意见吗? – 2012-07-13 00:49:00
我有很多经验将我在视觉上做了什么翻译成Java,我也使用Macro-> Record选项。对于Android,您只需确保可以使用ImageJ库并确保ImageJ不会尝试呈现可视窗口。 – Ivan 2012-07-13 01:00:59
@伊万你能帮忙解决这个问题吗? http://stackoverflow.com/questions/25360544/line-detection-in-java – Jjang 2014-08-18 09:55:37
你看过ImageJ吗? – Ivan 2012-07-12 23:03:06
看看[Hough变换](http://en.wikipedia.org/wiki/Hough_transform)。 – Maurits 2012-07-12 23:16:28