複数のフレームの平均値を計算するプログラムを作成しました。この平均値を保存すると、フレームは965KBのファイルになりますが、OpenCVに基づいて5.93MBのSCILABで同じことを行います。より論理的に聞こえます。とにかく、私は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をopencvすると、次のようになります。
€€<€€<€€<€€<€€<€€<€€<€€<€€<€€<€€<€€<€€.......
ここで何が欠けているのか、その後、それらのファイルをSCILABにロードして、フレームをファイルとして保存したいと思います。ご協力いただきありがとうございます!