2012-12-19 34 views
3

我一直在处理OpenCV FREAK描述符,在获得了两个类似的定向和缩放图像的相当棒的匹配结果之后,我开始尝试缩放和旋转图像。OpenCV FREAK对于旋转/缩放不健壮

FREAK应该是不变的缩放/旋转,但我的结果是可怕的。我试图调整怪胎描述符参数:

new FREAK(true, true, 22, 5); //rotInvariant, scaleInvarian, scale, ocataves 

但我只是设法得到一些分辩在旋转的图像,它具有更高的分辨率的接近部分匹配。

有没有办法调整旋转和不同比例图像的FREAK?

+1

如果只是在图像较近的部分得到匹配,因为它不执行比例不变。尝试使用cv :: pyrDown(图像,图像)缩小比较大的图像(我猜测的训练图像),如果需要多次,并检查结果是否更好 –

+1

是的,它有所改善。所以它不是可以缩放的,然后呢?或者因为参数不能正常工作?我真的不知道如何调整它们,代码很棘手,没有关于它的文档。 –

+1

我认为它对旋转和缩放比较健壮,因为我为两种情况处理了一些很好的结果,但是在针对特定情况调整算法之后。我想它应该可以通常调整它,但参数3非常敏感,并且取决于参考图像的比例。我必须挖掘更多。 –

回答

2

FREAK本身不是旋转/尺度不变的。它使用AGAST提供的旋转和缩放在AGAST关键点(这是BRISK的纸关键点描述符的小名)上进行了培训。因此,如果您希望达到尺度/旋转不变性的最佳条件,则需要使用此检测器。

0

同意sansuiso。只是想补充一点,opencv允许您使用BRISK关键点检测。获得关键点并围绕这些关键点运行FREAK。