将数组数据写入opencv中的文本文件

writing array data into a text file in opencv

本文关键字:文本 文件 opencv 数组 数据      更新时间:2023-10-16

我想将其中一个通道的数组数据写入文本文件。我该怎么做呢?

I tried this

Mat img = imread("dog.jpg", 1);
std::ofstream fout("myfile.txt");
fout << img.at<Vec3b>(i, j); 

但是它正在复制所有3个通道的数据。我只想存储一个通道的数据,比如B[][]。假设我已经将所有通道的数据分别存储在R[][],G[][],B[][]中,如下所示。

Vec3b intensity = img.at<Vec3b>(i, j);
B[j][i]=intensity[0];
G[j][i] = intensity[1];
R[j][i] = intensity[2];
fout << ??????????????????????;  //want to store data of Blue channel

试试这个:

Mat img = imread("d:\ImagesForTest\cat.jpg", 1);
std::ofstream fout("myfile.txt");
vector<Mat> ch;
cv::split(img,ch);
  //  Possible formatters
  // --------------------------
  //  (matlab)      Formatter::FMT_MATLAB
  //  (python)      Formatter::FMT_PYTHON
  //  (numpy)       Formatter::FMT_NUMPY
  //  (csv)         Formatter::FMT_CSV
  //  (c)           Formatter::FMT_C 
fout << format(ch[0], Formatter::FMT_CSV); // Blue
fout << format(ch[1], Formatter::FMT_CSV); // Green
fout << format(ch[2], Formatter::FMT_CSV); // Red