我试图运行与OpenCV Visual C++。我已经将OpenCV链接到了Visual Studio 2012.当我试图运行代码时,它给了我一个错误;致命错误LNK1104:无法打开文件'opencv_calib3d246.dll'
LINK : fatal error LNK1104: cannot open file 'opencv_calib2d246.dll'
这就是我要怎样做:
#include "stdafx.h"
#include "opencv2\highgui\highgui.hpp"
#include "opencv2\core\core.hpp"
#include<iostream>
using namespace cv;
using namespace std;
int main(int argc, char** argv)
{
if(argc !=2)
{
cout <<"usage: display_image ImageToLoadAndDisplay"<<endl;
return -1;
}
Mat image;
image=imread(argv[1],CV_LOAD_IMAGE_UNCHANGED);
if(! image.data)
{
cout<<"couldn't open or find the image"<<endl;
return -1;
}
namedWindow("Display Window",WINDOW_AUTOSIZE);
imshow("Display Window",image);
waitKey(0);
return 0;
}
我已经包括了所有的库。我在Windows 7 32位系统上使用OpenCV 2.4.6。
再说了我要补充,还是我必须在程序初始化呢?
更新
在我的硬盘OpenCV的路径:E:\opencv\opencv
。系统环境变量中的路径:%OPENCV_DIR%\x86\vc11\bin;
,其中我创建了一个新变量作为OPENCV_DIR,并给出了路径E:\opencv\opencv\build
。并在linker\command line
/OUT:“E:\ VS2012 Projects \ cvtest \ Debug \ cvtest.exe”/ MANIFEST/NXCOMPAT/PDB:“E:\ VS2012 Projects \ cvtest \ Debug \ cvtest.pdb”/ DYNAMICBASE“ opencv_calib3d248.lib “ ”opencv_calib3d248d.lib“ ”opencv_contrib248.lib“ ”opencv_contrib248d.lib“ ”opencv_core248.lib“ ”opencv_core248d.lib“ ”opencv_features2d248.lib“ ”opencv_features2d248d.lib“ ”opencv_flann248.lib“ ”opencv_flann248d.lib“” “opencv_gpu248.lib”“opencv_gpu248d.lib”“opencv_highgui248.lib”“opencv_highgui248d.lib”“opencv_imgproc248.lib”“opencv_imgproc248d.lib”“opencv_legacy248.lib”“opencv_legacy248d.lib”“opencv_ml248.lib”“opencv_ml248d.lib”“ opencv_nonfree248.lib” “opencv_nonfree248d.lib” “opencv_objdetect248.lib” “opencv_objdetect248d.lib” “opencv_ocl248.lib” “opencv_ocl248d.lib” “opencv_photo248.lib” “opencv_photo248d.lib” “opencv_stitching248.lib” “opencv_stitching248d.lib” “opencv_superres248.lib”“opencv_superres248d.lib”“opencv_ts248.lib”“opencv_ts248d.lib”“opencv_video248.lib”“opencv_video248d.lib”“opencv_videostab248.lib”“opencv_videostab248d.lib”“kernel32.lib”“user32.lib” “gdi32.lib”“winspool.lib”“comdlg32.lib”“advapi32.lib”“shell32.lib”“ole32.lib”“oleaut32.lib”“uuid.lib”“odbc32.lib”“odbccp32.lib”/DEBUG/MACHINE:X86/INCREMENTAL/PGD:“E:\ VS2012 Projects \ cvtest \ Debug \ cvtest.pgd”/ MANIFESTUAC:“level ='asInvoker'uiAccess ='false'”/ManifestFile:"Debug\cvtest.exe .intermediate.manifest“/ ERRORREPORT:PROMPT/NOLOGO/TLBID:1
现在我无法加载图像。没有致命的错误,什么也没有。它正在考虑if语句并且不加载任何内容。
有什么建议吗?
您是否添加了对此dll的引用?我尝试在C#中使用opencv我刚刚添加它在参考 – Sherlock
去链接器/一般,并添加该.lib文件所在的路径,以“额外的链接器目录”或类似 – Micka
@Micka我检查了路径。我也指定了路径。仍然我收到了同样的错误。 –