首页 > 解决方案 > 如何在 Python 代码中从 Visual SFM 读取 .mat 文件?

问题描述

有人可以帮助我使用 Python 代码来读取从 Visual SFM 生成的 .mat 文件吗?您可以从以下链接下载 .mat 文件:

https://github.com/cvlab-epfl/tf-lift/tree/master/example

您可以在链接中的 zip 中获取 .mat 文件,该文件就是我寻求帮助的文件。它似乎是一个 ASCII 文件。我不知道如何读取文件中的数据。我尝试使用scipy.io.loadmat()将数据加载到 .mat 文件中,但出现错误:

Traceback (most recent call last):
File "<stdin>", line 1, in <module>
raise ValueError('Unknown mat file type, version %s, %s' % ret)
ValueError: Unknown mat file type, version 20, 0

有人可以帮我用 Python 代码加载文件中的数据吗?

感谢您的帮助和真诚的回复。

标签: pythonmatlabscipystructure-from-motion

解决方案


如果您的意思是这个 VisualSFM ( http://ccwu.me/vsfm/doc.html ),那么 .mat 文件不是 MATLAB .mat 文件,而是一个“匹配”文件。

从网站:

[name].sift 存储所有检测到的 SIFT 特征,[name].mat 存储特征匹配。

似乎有用于读取此文件 ( http://ccwu.me/vsfm/MatchFile.zip ) 的 C++ 代码,您可以使用它来编写 python 解析器。

此外,VSFM 似乎有一个 python 套接字接口,它可以让你做你想做的事https://github.com/nrhine1/vsfm_util


推荐阅读