2012-01-16 43 views
5

我需要检测图上的x轴和y轴。 PHP的现有库无法检测到这些行,因为此过程需要Hough Transform方法(如果我错了,请纠正我)有没有什么方法可以使用PHP来检测使用/不使用Hough变换的轴。使用PHP Hough变换

的榜样图: enter image description here

+0

我想你可能在本地使用PHP时很难做到这一点。如果可能的话,我建议你看看使用OpenCV:http://opencv.willowgarage.com/wiki/如果有更好的方法,我会热衷于这里。 – 2012-01-16 14:29:35

+0

如果轴总是形成一个直角并沿着图像的x和y方向,那么它可能一点也不难实现。即使像计算垂直和水平像素这样的简单过程也足以找到这些轴。如果不是这种情况,如果您知道图像永远不会超过+/- 10°,那么hough变换甚至可能会非常快,因为您可以减少角度的循环。 – JohannesB 2015-05-03 18:32:24

回答

3

我想,如果我们的目标是轴的检测而已,更简单的方法是使用形态学操作(使用Hough变换可能是真正的计算要求,并可能止跌没有太多的“噪音”)。我宁愿使用GNU octave来执行图像处理操作,而不是通过php前端提供结果。

启动可能是(例如检测起源和最大值 - 最少X,最大X,最小Y,最大y以获得角落过滤器)

可能的代码:

I = rgb2gray(imread('iEth9.jpg')); 
I = I < 11; 
A = imopen(I, ones(1,100)'); 
B = imopen(I, ones(1,100)); 
imagesc(I);hold on; 
[y,x] = find(A&B); 
plot(x,y,'ro'); 
+1

由于我的inernet连接出现了一些错误,我无法上传图片,但这里是我的示例的输出结果(质量抱歉)http://img268.imageshack.us/img268/272/examplefg.jpg – WebMonster 2012-01-16 18:29:31

+0

WebMonster,谢谢!我也会运行你的脚本。我可能还有几个问题。 – amertkara 2012-01-17 01:33:55

+1

Gnu八度不断给出以下消息:“错误:rgb2gray:输入必须是RGB图像或彩色图”。如何将当前图像转换为rgb格式? – amertkara 2012-01-17 22:07:46