在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