C++将矩阵存到.txt文件, 使用 FILE 或 ofstream,在MFC编写中会用到CStdioFile
1、使用FILE
int main(){
int i, j ;
cv::Mat my_mat( 20, 20, CV_32FC2, cv::Scalar::all(0) ) ;
FILE *fp ;
fp = fopen( "myfile.txt", "w" ) ;
for(i=0; i<my_mat.rows; i++){
for(j=0; j<my_mat.cols; j++){
fprintf(fp, "%3.0f", my_mat.at<float>(i,j) ) ; // the data type should be matched.
// the same as that of my_mat
}
fprintf( fp, "\n" ) ;
}
fclose( fp ) ;
return 1 ;
}
// 这里假设需要保存图像 img_gray 的灰度值 到文件夹
std::string fileName = "val_img.txt" ;
std::ofstream outfile( fileName.c_str() ) ; // file name and the operation type.
int i, j ;
for( i=0; i<img_gray.rows; i++ ){
for( j=0; j<img_gray.cols; j++ )
outfile << (int) img_gray.at<uchar>(i,j) << " " ; // note the uchar, be changed to int type.
outfile << std::endl ; // a newline after storing all the values of a line of the img
}
outfile.close() ;
3、使用CStdioFile来保存文件
CStdioFile f1;
f1.Open("D:\\a.txt", CFile::modeCreate | CFile::modeWrite|CFile::typeText);
f1.WriteString(result);
f1.Close();