Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用PHP实现Hough变换_Php_Image Processing - Fatal编程技术网

用PHP实现Hough变换

用PHP实现Hough变换,php,image-processing,Php,Image Processing,我需要在图表上检测x轴和y轴。现有的PHP库无法检测线,因为此过程需要Hough变换方法(如果我错了,请纠正我)。是否有任何方法可以使用PHP检测带有/不带Hough变换的轴 图中的一个示例: 我认为如果目标只是检测轴,一种更简单的方法是使用形态学运算(使用hough变换可能在计算上要求很高,并且可能无法处理如此多的“噪声”)。我宁愿使用它来做图像处理操作,也不愿通过php前端提供结果 可能的启动代码可能是(例如,检测原点和最大值-过滤最小x、最大x、最小y、最大y以获得角): I=rgb2gr

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

图中的一个示例:

我认为如果目标只是检测轴,一种更简单的方法是使用形态学运算(使用hough变换可能在计算上要求很高,并且可能无法处理如此多的“噪声”)。我宁愿使用它来做图像处理操作,也不愿通过php前端提供结果

可能的启动代码可能是(例如,检测原点和最大值-过滤最小x、最大x、最小y、最大y以获得角):

I=rgb2gray(imread('iEth9.jpg');
I=I<11;
A=I打开(I,个(1100)”;
B=imopen(I,个(1100));
c(I);等等
[y,x]=查找(A&B);
图(x,y,'ro');

我想您可能会发现使用PHP本机很难做到这一点。如果可能的话,我建议您考虑一下使用OpenCV:如果有更好的方法,我很想在这里讨论一下。如果轴始终形成直角并遵循图像的x和y方向,那么实现它可能一点也不难。即使是像计算垂直和水平像素这样的简单过程也足以找到这些轴。此外,如果不是这种情况,hough变换甚至可能非常快,如果您知道图像的旋转角度永远不会超过+/-10°,因为您可以减少角度的循环。由于inernet连接中的一些错误,我无法上载图像,但这是我的示例(质量很抱歉)WebMonster的输出,谢谢!我还将运行您的脚本。我可能还有几个问题。Gnu octave一直在给出以下消息:“错误:rgb2gray:输入必须是RGB图像或颜色贴图”。如何将当前图像转换为rgb格式?在I=imread(“”)之后,大小(I)的结果是什么?如果仅为高度x宽度(而不是高度x宽度x 3),则您的文件始终是灰度图像,因此您可以跳过rgb2gray步骤。我尝试不使用rgb2gray,结果就是这样。我不知道为什么我不能得到和你一样的结果。
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');