zoukankan      html  css  js  c++  java
  • 003 :FileStorage以及Mat类的使用

          1.FileStorage类是一个XML/YAML、JSON 文件存储类,用于包含所需读或者写的文件信息 ,在进行计算时候可以用这样的方式保存结果,以便于后面进行检索。

         2. Mat::eye(Height,width,Dtype)创建单位举证 ,Mat::ones(Height,width,Dtype)创建元素全部为1的矩阵,Mat::zeros(Height,width,Dtype)创建元素为0的矩阵。

         3.矩形的相乘,以及与标量相乘的方式,举证的转置以及求逆举

     1 #include "opencv2/opencv.hpp"
     2 #include<string>
     3 #include<iostream>
     4 using namespace cv;
     5 using namespace std;
     6 
     7 int main(int, char** argv)
     8 {
     9 
    10     //FileStorage类是一个XML/Yaml、JSON 文件存储类,用于包含所需读或者写的文件信息
    11     FileStorage fs("test.yml", FileStorage::WRITE);
    12     // Save an int
    13     
    14     int fps= 5;
    15     fs << "fps" << fps;
    16     // Mat::eye创建指定类型和大小的单位矩阵
    17     Mat m1= Mat::eye(2,3, CV_32F);
    18     cout << "m1:" << endl << m1 << endl << endl;
    19     fs << "m1" << m1;
    20     //创建元素全部为1的矩阵
    21     Mat m2= Mat::ones(3,2, CV_32F);
    22     cout << "m2:" << endl << m2 << endl << endl;
    23     fs << "m2" << m2;
    24     Mat result= (m1+1).mul(m1+3);
    25     // write the result
    26     cout << "(m1+1).mul(m1+3)" << endl << result << endl << endl;
    27     //矩阵的转置
    28     Mat transpositionM = result.t();
    29     cout << "result 转置" << endl << transpositionM << endl << endl;
    30     //矩阵求逆
    31     Mat m3 = Mat::eye(3, 3, CV_32F);
    32     cout << "m3" << endl << m3 << endl << endl;
    33     Mat invM = m3.inv();
    34     cout << "result 逆矩" << endl << invM << endl << endl;
    35 
    36     fs << "Result" << result;
    37     // release the file
    38     fs.release();
    39 
    40     FileStorage fs2("test.yml", FileStorage::READ);
    41 
    42     Mat r;
    43     fs2["Result"] >> r;
    44     std::cout << r << std::endl;
    45 
    46     fs2.release();
    47 
    48     return 0;
    49 }

    通过cout输出的结果如下

     通过FileStorage存储的文本如下

  • 相关阅读:
    原生JS中apply()方法的一个值得注意的用法
    关于“float”的一次探索--遇到了一个span元素可以设置宽高引发的思考
    git常用命令
    react 项目全家桶构件流程
    vue回顶部 组件 可以直接使用
    vscode左边侧边栏字体的大小
    小程序的福音,
    Android实战技巧:Dialog (转)
    给Android 应用开发者的十个建议(转)
    多线程与异步的区别(转)
  • 原文地址:https://www.cnblogs.com/codeAndlearn/p/11527804.html
Copyright © 2011-2022 走看看