OpenCVでサンプルコードを使うとエラーが出ます
環境はVidualStudio2008、OpenCVは2.1のバージョンを利用しています。
OpenCVのテンプレートマッチングのサンプルを利用したところエラーが発生しました。
ソースは以下のものを使っています。
ところどころに入っているprintfは私が自分で入れたものですがこれが原因であるとは考えにくいのです。
エラーは添付したような画像で現れます。
またデバッグしたところ
[下のフレームは間違っているか、または見つかりません。KernelBase.dll に対して読み込まれたシンボルはありません。]
KernelBase.dll!76b7b9bc()
このような文章も表示されました。
どうすれば解決できるでしょうか。
#include <cv.h>
#include <highgui.h>
int main (int argc, char **argv)
{
double min_val, max_val;
CvPoint min_loc, max_loc;
CvSize dst_size;
IplImage *src_img, *tmp_img, *dst_img;
argv[1]="○○";
argv[2]="○○";
argc=3;
printf("1complete\n");
cvNamedWindow ("Image", 1);
src_img = cvLoadImage (argv[1], CV_LOAD_IMAGE_COLOR);
tmp_img = cvLoadImage (argv[2], CV_LOAD_IMAGE_COLOR);
if(argc != 3 || (src_img = cvLoadImage (argv[1], CV_LOAD_IMAGE_COLOR))==0||(tmp_img = cvLoadImage (argv[2], CV_LOAD_IMAGE_COLOR))==0)
return -1;
printf("2complete\n");
// (1)探索画像全体に対して,テンプレートのマッチング値(指定した手法に依存)を計算
dst_size = cvSize (src_img->width - tmp_img->width + 1, src_img->height - tmp_img->height + 1);
printf("2-1complete\n");
dst_img = cvCreateImage (dst_size, IPL_DEPTH_32F, 1); //ここで動作停止
printf("2-2complete\n");
cvMatchTemplate (src_img, tmp_img, dst_img, CV_TM_CCOEFF_NORMED);
printf("2-3complete\n");
cvMinMaxLoc (dst_img, &min_val, &max_val, &min_loc, &max_loc, NULL);
printf("3complete\n");
// (2)テンプレートに対応する位置に矩形を描画
cvRectangle (src_img, max_loc, cvPoint (max_loc.x + tmp_img->width, max_loc.y + tmp_img->height), CV_RGB (255, 0, 0), 3);
printf("4complete\n");
cvShowImage ("Image", src_img);
printf("ALL COMPLETE!\n");
cvWaitKey (0);
cvDestroyWindow ("Image");
cvReleaseImage (&src_img);
cvReleaseImage (&tmp_img);
cvReleaseImage (&dst_img);
return 0;
}
お礼
ありがとうございます。 エラー解消しました。 助かりました。