1
cv :: imdecode()の1つの機能を満たしました。標準以外のサイズで画像をロードしようとしたときに、Opencv:標準以外のサイズの画像でimdecode()が失敗する
マイC++コード:実行した後
FILE* pf = NULL;
pf = _wfopen(strFileName, L"r");
if (!pf)
{
return false;
}
fread(pFileBuf, 1, nFileSize, pf);
fclose(pf);
cv::Mat matRaw = cv::Mat(1, nFileSize, CV_8UC1, pFileBuf);
cv::Mat matImage = cv::imdecode(matRaw, CV_LOAD_IMAGE_COLOR);
delete [] pFileBuf;
SIZE size;
size.cx = matImage.cols;
size.cy = matImage.rows;
matImage.rows = 0と行例えば= 0
、ここでサイズ236x402と.JPGでありますmatImage.data = NULLです。
しかし、1280x720のjpeg画像ではうまくいきます。
アイデア?
pf = _wfopen(strFileName, L"r");
で
ため
感謝でなければなりません、あなたは "B"(バイナリ)で 'fopen'モードを使用しようとすることができます(' L」を含みますrb "')? "r"だけを使用すると、デフォルトのモードはある変数の値に依存するので、イメージファイルを開くために "b"を使用する方が安全です(私が知っているすべてのイメージファイルとバイナリ構造を持っています)。 – Ped7g
pFileBufのタイプは何ですか? –
[OpenCVでJPEGバイナリデータを処理するにはどうすればいいですか?](http://stackoverflow.com/questions/31831210/how-to-process-a-jpeg-binary-data-in-opencv) – Miki