我想要在图像[大小:512 X 512]中检测类型:y^2 = 4a * x的抛物线。我准备了一个累加器阵列,acc [size:512 X 512 X 512]。我准备了与该图像对应的MATRIX。我用了霍夫变换。这是我如何做到了:OpenCV:使用霍夫变换的抛物线检测
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'(非精确值)的值。
请帮帮我。我的概念有错吗?
你可以发布一个链接到图像的例子 –