Opencv 将信息添加到关键点方向和比例

问题描述

所以我在关键点上遇到了一些问题,让我解释一下。

我使用 OpenCV 导入图像,然后使用 pyrdown() 获取该图像的 4 个八度音程,然后使用快速算法获取每个八度音程的关键点。

所以你知道我有 4 个八度音程所以 4 个关键点向量,我这样做是为了获得尺度不变性,但事实是我不知道如何利用它。

我尝试连接关键点向量但没有成功我也计划添加方向,所以我的问题是如何向关键点添加信息,因为我知道关键点有一个参数来指定八度音程和方向,但由于 FAST 算法不关心我丢失的那些,请帮助。

PS:实际上我需要使用 FAST + Brief 手动实现 ORB,所以我必须使用 FAST。

PS 2:Juste to提一下我使用BRIEF来描述关键点并在比较相同的图像或尺度变化很小时使用了2个匹配器BRUTEFORCE和FLANN我用FLANN得到了很好的结果但是如果我将它缩放太多或旋转一英寸一切都变得疯狂,我知道这很正常,因为我的关键点仅由 x 和 y 位置定义。

感谢您的帮助,这里是我的一小段代码,只是为了让您理解我的混乱。

image_BGR1 = imread(image_Import1,IMREAD_COLOR);
image_BGR2 = imread(image_Import2,IMREAD_COLOR);

Obj.Empty(image_Import1,image_BGR1);                                     
Obj.Empty(image_Import2,image_BGR2);                                     

octave1_1 = image_BGR1;
octave2_1 = Obj.Scale_Invariance(octave1_1);
octave3_1 = Obj.Scale_Invariance(octave2_1);
octave4_1 = Obj.Scale_Invariance(octave3_1);

octave1_2 = image_BGR2;
octave2_2 = Obj.Scale_Invariance(octave1_2);
octave3_2 = Obj.Scale_Invariance(octave2_2);
octave4_2 = Obj.Scale_Invariance(octave3_2);

keypoint1_1 = Obj.FAST_Key_Point_Detection(scale_rotate_invariance1_1,threshold);
keypoint2_1 = Obj.FAST_Key_Point_Detection(scale_rotate_invariance2_1,threshold);
keypoint3_1 = Obj.FAST_Key_Point_Detection(scale_rotate_invariance3_1,threshold);
keypoint4_1 = Obj.FAST_Key_Point_Detection(scale_rotate_invariance4_1,threshold);

keypoint1_2 = Obj.FAST_Key_Point_Detection(scale_rotate_invariance1_2,threshold);
keypoint2_2 = Obj.FAST_Key_Point_Detection(scale_rotate_invariance2_2,threshold);
keypoint3_2 = Obj.FAST_Key_Point_Detection(scale_rotate_invariance3_2,threshold);
keypoint4_2 = Obj.FAST_Key_Point_Detection(scale_rotate_invariance4_2,threshold);


// Dessiner le Keypoint trouver sur une image output.
Obj.Key_Point_Drawing_Mode3(octave_1,octave_2,keypoint_1,keypoint_2);

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)