我想检测图像中的抛物线类型:y^2 = 4a*x [大小:512 X 512]。我准备了一个累加器数组 acc[size: 512 X 512 X 512]。我准备了一个与该图像相对应的 MATRIX。我使用了霍夫变换。我是这样做的:
for x = 1 to 512
for y= 1 to 512
if image_matrix(x,y)> 245//almost white value, so probable to be in parabola
{
for x1= 1 to 512
for y1= 1 to 512
{
calculate 'a' from (y-y1)^2 = 4*a*(x-x1).
increment acc(i,j,k) by 1
}
}
if acc(i,j,k) has a maximum value.
{
x1=i, y1=j,a =k
}
我遇到了以下问题:
1) acc[512][512][512] 占用大量内存。它需要大量计算。如何减小数组大小从而最小化计算?2) acc(i,j,k) 的最大值输入并不总是给出预期的输出。有时第二个或第三个最大值,甚至第 10 个最大值给出预期的输出。我需要大约。'a'、'x1'、'y1' 的值(不是精确值)。
请帮我。我的概念有什么问题吗?