0%

利用opencv测试c++与python数据是否一致

自动摘要: 思路:pythonnumpy将矩阵保存为xml文件>c++opencv加载xml文件将数据保存为Mat数据结构(opencv中的数据结构(或者int,float,string)保存到 ……..

思路:python-numpy将矩阵保存为xml文件->c++-opencv加载xml文件将数据保存为Mat数据结构(opencv 中的数据结构(或者int,float,string)保存到 XML/YAML 文件中去。或者从XML/YAML文件中加载这些数据)

保存

  • python端使用opencv保存矩阵为xml文件

    1
    2
    3
    cv_file = cv2.FileStorage("./test.xml", cv2.FILE_STORAGE_WRITE)
    cv_file.write("test", instance_seg_image)
    cv_file.release()
  • C++端将Mat数据结构保存为xml文件

    1
    2
    3
    4
    Mat mat = Mat::eye(Size(12,12), CV_8UC1);
    FileStorage fs("./test.xml", FileStorage::WRITE);
    fs<<"test"<<mat;
    fs.release();

读取

  • C++端读取xml文件,保存为Mat数据结构

    1
    2
    3
    FileStorage fs("./test.xml", FileStorage::READ);
    cv::Mat mat_instance;
    fs["test"] >> mat_instance;
  • python端读取xml文件,保存为numpy数据结构

    1
    2
    data = cv2.FileStorage("./test.xml",cv2.FILE_STORAGE_READ)
    out_np=data.getNode("test").mat()
  • 图片是分别使用python和C++保存的矩阵的xml文件(二者结果相同)

欢迎关注我的其它发布渠道