opencv读取txt文件,并赋值为Mat矩阵

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/weixin_38285131/article/details/77046814
                                        <div class="markdown_views">
            <p>目的:opencv读取txt文件,并将txt文件赋值给Mat矩阵 <br>

方法:利用fstream类来完成
关于fstream类请参考下面这篇文章:
http://blog.csdn.net/smstone/article/details/661483

下面给出代码:

// vv.cpp : 定义控制台应用程序的入口点。
//
//#include "stdafx.h"  

#include <stdio.h>  
#include <cv.h>  
#include "cvaux.h" //必须引此头文件  
#include "cxcore.h"
#include <iostream>  
#include <fstream>  
#include "opencv2/core/core.hpp"  
#include "opencv2/highgui/highgui.hpp"   
#include "opencv2/nonfree/nonfree.hpp"  

using namespace std;
using namespace cv;


int main(int argc, char** argv)
{
    fstream file1,file2;//创建文件流对象
    file1.open("Matrix_ky1.txt");
    file2.open("Matrix_ky1.txt");
    Mat Ky1_Data = Mat::zeros(67, 4, CV_32FC1);//创建Mat类矩阵,定义初始化值全部是0,矩阵大小和txt一致
    Mat Ky2_Data = Mat::zeros(67, 4, CV_32FC1);//同理

    //将txt文件数据写入到Data矩阵中
    for (int i = 0; i < 67; i++)
    {
        for (int j = 0; j < 4; j++)
        {
            file1 >> Ky1_Data.at<float>(i, j);
            file2 >> Ky2_Data.at<float>(i, j);
        }
    }

    cout << "矩阵1的数据输出为:" << endl;
    cout << Ky1_Data << endl;
    cout<<endl;
    cout << "矩阵2的数据输出为:" << endl;
    cout << Ky2_Data << endl;

    waitKey(0);


    return 0;
}
   
   
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47

如下就可以把数据输入到矩阵中,结果如下:
这里写图片描述

本博客参考了这篇博客:
http://lib.csdn.net/article/opencv/28701



版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/weixin_38285131/article/details/77046814
                                        <div class="markdown_views">
            <p>目的:opencv读取txt文件,并将txt文件赋值给Mat矩阵 <br>

方法:利用fstream类来完成
关于fstream类请参考下面这篇文章:
http://blog.csdn.net/smstone/article/details/661483

下面给出代码:

// vv.cpp : 定义控制台应用程序的入口点。
//
//#include "stdafx.h"  

#include <stdio.h>  
#include <cv.h>  
#include "cvaux.h" //必须引此头文件  
#include "cxcore.h"
#include <iostream>  
#include <fstream>  
#include "opencv2/core/core.hpp"  
#include "opencv2/highgui/highgui.hpp"   
#include "opencv2/nonfree/nonfree.hpp"  

using namespace std;
using namespace cv;


int main(int argc, char** argv)
{
    fstream file1,file2;//创建文件流对象
    file1.open("Matrix_ky1.txt");
    file2.open("Matrix_ky1.txt");
    Mat Ky1_Data = Mat::zeros(67, 4, CV_32FC1);//创建Mat类矩阵,定义初始化值全部是0,矩阵大小和txt一致
    Mat Ky2_Data = Mat::zeros(67, 4, CV_32FC1);//同理

    //将txt文件数据写入到Data矩阵中
    for (int i = 0; i < 67; i++)
    {
        for (int j = 0; j < 4; j++)
        {
            file1 >> Ky1_Data.at<float>(i, j);
            file2 >> Ky2_Data.at<float>(i, j);
        }
    }

    cout << "矩阵1的数据输出为:" << endl;
    cout << Ky1_Data << endl;
    cout<<endl;
    cout << "矩阵2的数据输出为:" << endl;
    cout << Ky2_Data << endl;

    waitKey(0);


    return 0;
}
 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47

如下就可以把数据输入到矩阵中,结果如下:
这里写图片描述

本博客参考了这篇博客:
http://lib.csdn.net/article/opencv/28701

猜你喜欢

转载自blog.csdn.net/monk1992/article/details/81983225