问题:
在matlab中运行代码的时候遇到了一个问题,就是detectSIFTFeatures函数显示错误,记得这是matlab中computer vision toolbox中的函数,相当于matlab自带的函数,但是找不到这个函数。
原因:
Matlab在2020年之后的版本中不再包括detectSIFTFeatures
函数的主要原因是SIFT算法(Scale-Invariant Feature Transform)受到专利的限制,不再提供了,所以不能直接用。
解决方法:
打开附加功能,选择获取附加功能;
然后在这个界面选择右上角的“管理附加功能”:
搜索computer vision toolbox
点击右边三个点,查看文档;
在functions那里可以看到,toolbox包含的函数,发现有:
detectSURFFeatures函数,是没有detectSIFTFeatures的,这两个函数都用于局部特征检测。
detectSURFFeatures
对图像的尺度变化相对不敏感,但对于旋转变化相对较敏感。detectSIFTFeatures
具有更强的尺度不变性和旋转不变性,可以更好地处理不同尺度和旋转角度下的特征。detectSURFFeatures速度更快,更稳定。
detectSURFFeatures和detectSIFTFeatures实际使用的效果几乎没有差别。
所以将代码中的detectSIFTFeatures修改成detectSURFFeatures,同时将使用SIFT的地方也修改成SURF。