參考:
https://github.com/rogersce/cnpy
git clone https://github.com/rogersce/cnpy.git
然後使用cmake-gui+visual studio生成cnpy的dll和lib;在打開sln文件生成項目時會出現如下錯誤,不用管它,lib和dll文件已經生成,拿到自己的項目中用就是了。(我這統一使用vs2017 x64 Release)
然後新建個c++控制檯工程,include cnpy頭文件目錄,include含有cnpy生成lib的目錄,添加lib名,把cnpy的dll放入項目目錄。
按照https://github.com/rogersce/cnpy/blob/master/example1.cpp
include一堆頭文件,讀取一個保存10103數組的npy文件
#include "pch.h"
#include "cnpy.h"
#include<complex>
#include<cstdlib>
#include<iostream>
#include<map>
#include<string>
using namespace std;
int main()
{
//srand(0);
cnpy::NpyArray arr = cnpy::npy_load("cnpy_test_rgb.npy");
std::complex<int>* loaded_data = arr.data<std::complex<int>>();
for (int i = 0; i < 300; i++) {
cout << loaded_data[i] << ' ';
}
cout << arr.shape[0] << " " << arr.shape[1] << " " << arr.shape[2] << endl;
cout << "Hello World!\n";
}
會如下錯誤報錯
fatal error C1083: 無法打開包括文件: “zlib.h”: No such file or directory
再在github上搜zlib,git clone+cmake-gui+visual studio生成zlib的dll和lib,再它們和對應的頭文件加到上面的項目,然後還報如下錯誤,然後只要再把編譯時的目錄...\zlib-1.2.11\build_64
include到項目中去就行了
fatal error C1083: 無法打開包括文件: “zconf.h”: No such file or directory
控制檯輸出如下
輸出數組的元素在實部體現,如果是三通道的數組的話,元素排列爲(r1,g1,b1,r2,g2,b2,…)