在C++中有什么简单的方法可以将cv::mat保存为npy文件吗?

ecbunoof  于 2023-02-26  发布在  其他
关注(0)|答案(1)|浏览(329)

我正在修改一个系统的输出以匹配另一个系统的输入。第一个系统是用C++编写的,第二个系统是用python编写的。第二个系统需要npy文件作为输入,所以我必须在第一个系统中将cv:Mat保存为npy文件。但是当我在网上做了一些调查后,我发现我可能必须使用boost::python来完成此操作。有没有简单的方法可以将cv:mat保存为npy文件,因为我不想在我的机器上安装python。

ht4b089n

ht4b089n1#

是的,你可以用一种相对直接的方式与numpy的C绑定接口,你会想读一读写得相当好的numpy文档,关于用本机代码“扩展numpy”。
当然,如果要编写使用numpy代码编写不稳定文件的C代码,需要安装numpy开发头文件,这可能会导致numpy和python的安装。
不过,老实说,numpy.fromfile可以加载原始数据文件,其中只包含openCV C
程序内存中的数字,所以,如果不需要在这些程序部分之间传输任何复杂的结构,而只需要传输数字数组,那就更容易了。
另一个选择是保存hdf 5;numpy可以读取这种结构化文件格式,而且有一些库可供C和C编写。
最常见的方法是把你的c
代码作为一个库,然后构建一个 Package 器,这样你就可以用numpy数据类型从python调用你的C代码, Package 纸神奇地完成numpy数组到C类型的转换,我认为现在,pybind 11是最流行的 Package 器,它确实很好地 Package 了numpy ndarray。

相关问题