我有一个程序,我在其中计算多个帧的平均值,当我保存这个平均值时,我得到一个 965KB 的文件,但是我用基于 OpenCV 的 SCILAB 做同样的事情,我得到一个 5.93MB听起来更合乎逻辑。无论如何,我决定使用 fwrite 编写我的框架,这里做了什么:
cv::Mat meanFrame= cv::Mat::zeros(height,width,CV_32FC3);
cv::Mat frameR;
FILE* inpR = NULL;
...... //after calculating the meanFrame
inpR = fopen("d:\\red.txt","wb+");
for(int row = 0; row < meanFrame.rows; ++row) {
for (int col = 0; col < meanFrame.cols; ++col) {
std::cout << meanFrame.at<cv::Vec3f>(row, col)[1] <<std::endl;
std::cout << meanFrame.at<cv::Vec3f>(row, col)[2] <<std::endl;
fwrite(&resultframe.at<cv::Vec3f>(row,col )[0],sizeof(float),1,inpR);
}
}
fcloseall();
我可以看到 pf 通道 1 和 2,但是当我打开文件 red.txt 时,我得到:
€€<€€<€€<€€<€€<€€<€€<€€<€€<€€<€€<€€<€€.......
知道我在这里缺少什么,之后我想在 SCILAB 中加载这些文件,而不是将框架保存为文件。感谢您的帮助!