【问题标题】:Hough Transform with PHP使用 PHP 进行霍夫变换
【发布时间】:2012-01-17 02:34:37
【问题描述】:

我需要检测图表上的 x 轴和 y 轴。现有的 PHP 库无法检测到线条,因为此过程需要 Hough 变换方法(如果我错了,请纠正我)有没有办法使用 PHP 检测带/不带 Hough 变换的轴。

图表示例:

【问题讨论】:

  • 我认为您可能会发现使用原生 PHP 很难做到这一点。如果可能的话,我建议你看看使用 OpenCV:opencv.willowgarage.com/wiki 如果有更好的方法,我会很乐意在这里。
  • 如果轴总是成直角并遵循图像的 x 和 y 方向,那么实现起来可能一点也不难。即使是像计算垂直和水平像素这样的简单过程也足以找到这些轴。此外,如果不是这种情况,hough 变换甚至可能会非常快,如果您知道图像的翻转永远不会超过 +/-10°,因为您可以减少角度的循环。

标签: php image-processing


【解决方案1】:

我认为,如果目标只是检测轴,那么更简单的方法是使用形态学运算(使用霍夫变换可能对计算要求很高,并且可能无法处理这么多的“噪音”)。我宁愿使用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');

【讨论】:

  • 由于网络连接出现错误,我无法上传图片,但这里是我的示例输出(抱歉质量问题)img268.imageshack.us/img268/272/examplefg.jpg
  • WebMonster,谢谢!我也会运行你的脚本。我可能还有一些问题。
  • Gnu octave 不断给出以下消息:“错误:rgb2gray:输入必须是 RGB 图像或彩色图”。如何将当前图像转换为 rgb 格式?
  • 在 I = imread('') 之后 size(I) 的结果是什么?如果它只是高度 x 宽度(不是高度 x 宽度 x 3),您的文件已经是灰度图像,因此您可以跳过 rgb2gray 步骤。
  • 我在没有 rgb2gray 的情况下尝试过,这是img853.imageshack.us/img853/410/gnuoctave1.png 的结果。我不知道为什么我不能得到和你一样的结果。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-12-09
相关资源
最近更新 更多