【SIFT】python OSError: empire.sift not found解决方案

【SIFT】python OSError: im1.sift not found解决方案

近期做了一些三维重建的工作,在做sift图像特征检测时遇到了一些问题,相信很多人也会有相同的经历,在这里写下自己的解决过程,希望在记录自己踩过的坑的同时,也能帮助大家解决问题。如有错误,请大家指正。

报错

【SIFT】python OSError: empire.sift not found解决方案_第1张图片

原因分析:

报错提示的代码行为l1, d1 = sift.read_features_from_file(‘im1.sift’),说明没有读取到im1.sift,说明
在sift.process_image阶段没有生成sift文件

解决方案

添加开源工具包VLFeat,下载链接:http://www.vlfeat.org/download/,最好下载vlfeat-0.9.20-bin.tar.gz,我曾经下载了0.9.21并未解决问题。
1)把vlfeat-0.9.20\bin\win64文件夹下的sift.exe、vl.dll和vl.lib这三个文件复制到项目的文件夹中。
2)进如Anaconda安装目录,找到Lib\site-packages\PCV\localdescriptors中的sift.py文件,打开(notepad或者记事本均可),修改其中的cmmd路径
在这里插入图片描述cmmd = str(r"C:\Users\PC028\PycharmProjects\test_3D\sift.exe “+imagename+” --output="+resultname+
" "+params)(路径是你项目文件夹中的sift.exe的路径)记得在路径前加r,并且路径最后要加一个空格

你可能感兴趣的:(【SIFT】python OSError: empire.sift not found解决方案)