我希望任何熟悉openCV和图像处理的人都会很快帮助我
我是openCV和VC ++的新手,这是本周第三次,我遇到了错误LNK2019。
我知道这个错误意味着包含指定函数的.lib文件尚未链接到项目,并且代码顶部没有包含相应的头文件。
但这一次基于this web page我收集到cvSmooth是opencv_imgproc243d.lib
中包含的函数,所以我将此.lib添加为Additional Dependencies
并编写了行
#include "opencv2\imgproc\imgproc.hpp"
在我的代码顶部,但错误
error LNK2019: unresolved external symbol cvSmooth referenced in function "void __cdecl example2_4(struct _IplImage *)"
不会改变并保持不变
我真的很困惑????
任何帮助将不胜感激,如果需要,请告诉我将代码作为编辑部分添加到我的问题中,请
是不是错了,cvSmooth
属于另一个.lib文件?
根据h3now的建议编辑我的问题部分
我的代码如下:
#include "stdafx.h"
#include "opencv\cv.h"
#include "opencv\highgui.h"
#include "opencv2\core\core.hpp"
#include "opencv2\imgproc\imgproc.hpp"
void example2_4( IplImage* image )
{
// Create some windows to show the input
// and output images in.
//
cvNamedWindow( "Example4-in",CV_WINDOW_AUTOSIZE );
cvNamedWindow( "Example4-out",CV_WINDOW_AUTOSIZE );
// Create a window to show our input image
//
cvShowImage( "Example4-in", image );
// Create an image to hold the smoothed output
//
IplImage* out = cvCreateImage(cvGetSize(image),IPL_DEPTH_8U,3);
// Do the smoothing
//
// Do the smoothing
//
cvSmooth( image, out, CV_GAUSSIAN, 3, 3 );
// Show the smoothed image in the output window
//
cvShowImage( "Example4-out", out );
// Be tidy
//
cvReleaseImage( &out );
// Wait for the user to hit a key, then clean up the windows
//
cvWaitKey( 0 );
cvDestroyWindow( "Example4-in" );
cvDestroyWindow( "Example4-out" );
}
int main(int argc, char* argv[])
{
IplImage* img = cvLoadImage(argv[1]);
example2_4( img );
cvReleaseImage( &img );
system("pause");
return 0;
}
例如,当我右键单击函数cvCreateImage
并选择Go To Definition
时,会打开名为core_c.h的文件。所以要明白这个函数的原型包含在core_c.h中。
因此,我们理解我们应该在代码顶部写#include "opencv2\core\core.hpp"
或#include "opencv2\core\core_c.h"
(我认为使用这两个代码中的任何一个没有区别)并链接opency_core243d.lib
到项目使用函数cvCreateImage
但是当我右键点击cvSmooth
并选择Go To Definition
时,没有任何反应
@ h3now建议的解决方案是否适用于所有功能?
因为当我也右键单击cvShowImage时,没有任何反应。
答案 0 :(得分:0)
我遇到了同样的错误。我使用的是opencv 2.2而不是2.4.3,但解决方案应该是等效的。
发现您需要包含的文件的好方法是(在visual studio中)右键单击代码中的函数名称并选择“转到定义”。通过这样做,我意识到我应该包含imgproc_c.h
头文件,而不是imgproc.hpp
。