我有一些图像数据集,这些图像已由某些代码处理,对于每个图像,它会生成S x R
个图像。
其中S是刻度数,R是纵横比数。因此对于3个刻度和3个纵横比。我有9个图像(每个图像是两个参数X和Y中的霍夫空间)
现在我想编写一些代码来获取那个霍夫空间中的峰值(局部最大值),我已经使用matlab和vision.LocalMaximaFinder
制作了一些代码,它只适用于2维,但我觉得它已满启发式而不是那么强大。
那么是否有任何可用的实现(在任何语言中)可以找到4D霍夫空间的峰值?或任何有关如何编码此类事物的资源?
答案 0 :(得分:0)
一种方法是确保您的图像存储在“im”的XxYxSxR数组中。然后
[maxes maxi] = max(im(:))
[x,y,s,r]=ind2sub(size(im),maxi)
这里的问题是许多最大值彼此非常接近。所以我建议在4D图像上运行一些非最大抑制。一种简单的方法是通过max-points(已排序)对最大值循环进行排序,并消除当前半径范围内的所有“max-points”。