このコードは現在まで使用されていました。何が原因でエラーが発生しているのかわかりません(実際にコードを変更したことは覚えていません)。C++ + OpenCV =アクセス違反の読み取り場所0x02176000
IplImage* fIplImageHeader = cvLoadImage(filePath.c_str());
vector<int> p;
p.push_back(CV_IMWRITE_JPEG_QUALITY);
p.push_back(75); // JPG quality
vector<unsigned char> buf;
cv::imencode(".jpg", fIplImageHeader, buf, p); // this line gives error
完全なエラーがある:ここでは(それはOpenCVのIplImageへのオブジェクトへのファイルから画像を読み取り、JPEGバッファに変換)である
がUnhandled exception at 0x638fee22 in Client.exe: 0xC0000005: Access violation reading location 0x02176000.
fIplImageHeaderに有効な画像が含まれています私が使用して確認することができます。
cvShowImage("Window", fIplImageHeader);
EDIT:
長いスニペット:
while (l < 30)
{
// path to image
std::stringstream sstm;
string filePath;
sstm << workingDirectory << "/temp/" << k << ".jpg";
filePath = sstm.str();
cout << filePath.c_str() << endl;
// load image to IplImage
IplImage* fIplImageHeader = cvLoadImage(filePath.c_str());
// convert to JPG
vector<int> p;
p.push_back(CV_IMWRITE_JPEG_QUALITY);
p.push_back(75); // JPG quality
vector<unsigned char> buf;
cv::imencode(".jpg", fIplImageHeader, buf, p);
// do stuff
k++;
l++;
if (10 == k)
{
k = 0;
}
char key = cvWaitKey(1000/30);
cvReleaseImage(&fIplImageHeader);
}
'imencode 'のドキュメントは、そのパラメータについて何を言いますか? –
@Martin York http://opencv.willowgarage.com/documentation/cpp/reading_and_writing_images_and_video.html –
なぜC++とCのインターフェイスを混在させていますか? (IplImageとcv :: matを使ったcv :: imencode) – etarion