リアルタイム ビデオのすべてのフレームを .pgm 形式で保存したいと考えています。C ++でopencv 2.4.8を使用しています。私の問題は、すべてのフレームが保存され、現象的に正しい形式 (frame_1.pgm など) で保存されているにもかかわらず、それらを開くと、.pgm 写真のようにグレースケールではないことです。さらに、hexeditor で画像を開き、正しい pgm 写真と比較しましたが、明らかな違いがあります!誰かが私が間違っていることについて何かアドバイスをもらえますか??
ここに私のコードの重要な部分があります:
/////////////////////////////////////////////// ////////////
vector<int> compression_params;
compression_params.push_back(CV_IMWRITE_PXM_BINARY);
compression_params.push_back(0);
captureDevice1>> captureFrame1;
imwrite("frame_55.pgm",captureFrame1,compression_params);
//string imagename=argv[2];
string imagename="frame_";
//string imagename="frame_";
char numberfile[17];
sprintf_s(numberfile,17,"%u",im);
imagename+=numberfile;
imagename+=".pgm";
std::ifstream in( imagename.c_str(), std::ios::binary );
if ( !in )
{
std::cout << "Error in Image: " << imagename << std::endl;
continue;
}
in.close();
/////////////////////////////////////////////// /////////////////////
image:frame_55.pgm を読み込もうとすると、他の .pgm イメージでは問題なく動作するのに、「サポートされていない形式」というエラーが表示されます!!
どうぞよろしくお願いします!!!