首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

在C++Builder6.0中调用OpenCV函数出错解决思路

2012-06-01 
在C++Builder6.0中调用OpenCV函数出错在C++Builder6.0中,已经配置好OpenCV的编译环境,编译OpenCV自带的DOS

在C++Builder6.0中调用OpenCV函数出错
在C++Builder6.0中,已经配置好OpenCV的编译环境,

编译OpenCV自带的DOS窗口程序通过,运行也正常。

但移值到VCL窗口下时则出错。

定义了如下函数:

void Tracking(int Frame_W, int Frame_H, Graphics::TBitmap *Frame_Bitmap)
{
 if( !image )
  {//第一次时分配内存
  image = cvCreateImage( cvSize(Frame_W,Frame_H), 8, 3 );
  hsv = cvCreateImage( cvSize(Frame_W,Frame_H), 8, 3 );
  hue = cvCreateImage( cvSize(Frame_W,Frame_H), 8, 1 );
  mask = cvCreateImage( cvSize(Frame_W,Frame_H), 8, 1 );
  backproject = cvCreateImage( cvSize(Frame_W,Frame_H), 8, 1 );
  hist = cvCreateHist( 1, &hdims, CV_HIST_ARRAY, &hranges, 1 );
  histimg = cvCreateImage( cvSize(320,200), 8, 3 );
  cvZero( histimg );
  }


 cvCopy( Frame_Bitmap, image->imageData , 0 );
 cvCvtColor( image, hsv, CV_BGR2HSV );

 if( track_object )
  {
  int _vmin = vmin, _vmax = vmax;

  cvInRangeS( hsv, cvScalar(0,smin,MIN(_vmin,_vmax),0),
  cvScalar(180,256,MAX(_vmin,_vmax),0), mask );
   
  cvSplit( hsv, hue, 0, 0, 0 );

  if( track_object < 0 )
  {
  cvSetImageROI( hue, selection );
  cvSetImageROI( mask, selection );

  cvCalcHist( &hue, hist, 0, mask );

  cvResetImageROI( hue );
  cvResetImageROI( mask );
   
  track_window = selection;
  track_object = 1;

  }

  cvCalcBackProject( &hue, backproject, hist );
  cvAnd( backproject, mask, backproject, 0 );

  //使用cvMeanShift进行跟踪
  cvMeanShift( backproject, track_window,
  cvTermCriteria( CV_TERMCRIT_EPS | CV_TERMCRIT_ITER, 20, 1 ),
&comp );
  track_window= comp.rect;

  }


只要调用了调函数:
Tracking(FrameData.Bitmap->Width, FrameData.Bitmap->Height, FrameData.Bitmap);

则出错如下:
[Linker Error] Unresolved external '_cvCreateHist' referenced from D:\我的文档\TARGETTRACKING\MAINUNIT.OBJ
[Linker Error] Unresolved external '_cvCreateImage' referenced from D:\我的文档\TARGETTRACKING\MAINUNIT.OBJ
[Linker Error] Unresolved external '_cvSetZero' referenced from D:\我的文档\TARGETTRACKING\MAINUNIT.OBJ
[Linker Error] Unresolved external '_cvCopy' referenced from D:\我的文档\TARGETTRACKING\MAINUNIT.OBJ
[Linker Error] Unresolved external '_cvCvtColor' referenced from D:\我的文档\TARGETTRACKING\MAINUNIT.OBJ
[Linker Error] Unresolved external '_cvInRangeS' referenced from D:\我的文档\TARGETTRACKING\MAINUNIT.OBJ
[Linker Error] Unresolved external '_cvSplit' referenced from D:\我的文档\TARGETTRACKING\MAINUNIT.OBJ
[Linker Error] Unresolved external '_cvSetImageROI' referenced from D:\我的文档\TARGETTRACKING\MAINUNIT.OBJ
[Linker Error] Unresolved external '_cvCalcArrHist' referenced from D:\我的文档\TARGETTRACKING\MAINUNIT.OBJ
[Linker Error] Unresolved external '_cvResetImageROI' referenced from D:\我的文档\TARGETTRACKING\MAINUNIT.OBJ
[Linker Error] Unresolved external '_cvCalcArrBackProject' referenced from D:\我的文档\TARGETTRACKING\MAINUNIT.OBJ
[Linker Error] Unresolved external '_cvAnd' referenced from D:\我的文档\TARGETTRACKING\MAINUNIT.OBJ
[Linker Error] Unresolved external '_cvMeanShift' referenced from D:\我的文档\TARGETTRACKING\MAINUNIT.OBJ


不调用函数则编译通过。为什么?



[解决办法]
工程里加入lib文件了吗?
[解决办法]
http://rocee.bokee.com/2409831.html

热点排行