私はFYPをやっていますが、私はOpenCVとC++の両方を少し新しくしています。 CvMomentsに関する情報を探しましたが、私が見つけたもの(理論的な例では問題ありません)は私の問題を解決しません。私は一連のイメージ( "1.png"から "5.png")を読み込み、HUモーメントをテキストファイルに書きたいと思います。コードのようである:エラーCvMomentsを使用してHUモーメントを計算する
CvMoments moments;
CvHuMoments hu_moments;
char filename[80] = "";
ofstream myfile;
myfile.open ("HU_moments.txt");
for (int i=0;i<5;i++){
sprintf(filename,"%u.png",i);
IplImage* image = cvLoadImage(filename);
cvMoments(image,&moments);
cvGetHuMoments(&moments, &hu_moments);
myfile << "Hu1: " << hu_moments.hu1 <<
"Hu2: " << hu_moments.hu2 <<
"Hu3: " << hu_moments.hu3 <<
"Hu4: " << hu_moments.hu4 <<
"Hu5: " << hu_moments.hu5 <<
"Hu6: " << hu_moments.hu6 <<
"Hu7: " << hu_moments.hu7 << ".\n";
cvReleaseImage(&image);
}
myfile.close();
私はcvMoments(画像、&瞬間)を取得するときに問題が発生します。私が取得:
VIEWER.EXEで0x759fb9bcで未処理の例外:マイクロソフトC++の例外:メモリ位置0x002fce00でCV ::例外は..
私はその対応に(ポインタとして瞬間を宣言しようとしていますmelloc)でも、同じエラーが出ます。面白いのは、デバッグを続けるオプションをクリックすると(5回、各ループごとに1つ)、テキストファイルに結果が表示されます。私はビジュアルスタジオ2008を使用しています。
私は誰かがここで何が起こっているのか、解決する方法を知って欲しいです。
感謝を! – carlos
イメージを正しくロードするかどうかをチェックしており、完全に開いています。また、画像はソースコードと同じディレクトリにあります。私はすべてのことを正しくやっていると思ったが、そのエラーメッセージが出る。 – carlos
更新された回答。この例は機能します。 – karlphillip