读书人

在C++Builder6.0中调用OpenCV函数出错

发布时间: 2012-06-01 16:46:36 作者: rapoo

在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

读书人网 >C++ Builder

热点推荐