我下载了opencv-2.4.5的源代码,然后我按照教程(在windows的opencv网站上)关于安装我自己的库的一切。好。我用cmake创建了opencv.sln文件,然后使用visual studio 2010 professional打开它,然后单击构建解决方案,但仅成功了9个。大多数200失败和大部分有关tbbd.lib的错误未找到,而opencv_core245d.lib未找到LNK1104错误。我试图解决它多少天。我试图展示文件的方式......任何人都可以帮忙吗?这是关于我的论文。 (有没有共同语言支持构建)OpenCV 245第一次建设错误
回答
快速解答
我已成功编译OpenCV的使用教程here TBB支持。
规格:Visual Studio中2012/Win 7的(64位)/的OpenCV 2.4.5/CUDA 5
我已下载最新TBB拉链和它提取到C:/ SRC/OpenCV的/ DEP(如上面链接教程中所建议的)。
你必须CMake的使用下面的TBB设置(调整取决于你的文件路径):
TBB_LIB_DIR :: C:/src/OpenCV/dep/tbb41_20130314oss/lib/intel64/vc11
TBB_INCLUDE_DIRS :: C:/src/OpenCV/dep/tbb41_20130314oss/include/
TBB_STDDEF_PATH :: C:/src/OpenCV/dep/tbb41_20130314oss/include/tbb/tbb_stddef.h
WITH_TBB :: checked
BUILD_TBB :: unchecked
更多信息
起初,我也想利用CUDA 5支持安装OpenCV ,但似乎CUDA 5与VS2012不兼容。这是编译 OpenCV的时候,我得到了错误:
Building NVCC (Device) object modules/core/CMakeFiles/cuda_compile.dir/src/cuda/Debug/cuda_compile_generated_matrix_operations.cu.obj
nvcc : fatal error : nvcc cannot find a supported cl version. Only MSVC 9.0 and MSVC 10.0 are supported
好消息是,你正在使用VS2010,可与CUDA一起使用,作为建议here。 VS2012可以设置为使用CUDA创建项目,但目前没有办法(AFAIK)通过CUDA支持VS2012编译OpenCV(有关更多信息,请参阅this)。
总之,需要CUDA支持的人们应该在VS2010中编译和使用OpenCV。
此外,编译OpenCV的时候,我得到了以下错误:
error C3859: virtual memory range for PCH exceeded; please recompile with a command line option of '-Zm118' or greater
fatal error C1076: compiler limit : internal heap limit reached; use /Zm to specify a higher limit
我使用的指令here终于编译OpenCV的。我在公共属性> C/C++>命令行中创建了一个/Zm130
作为附加选项,并将其添加到 到所有生成的OpenCV项目中。
供您参考,我还附上了CMake的配置和CMakeCache.txt文件,我用(CUDA被禁用,因为我用VS2012):
- CMake的配置:http://pastebin.com/8rJZGZ3T
- CMakeCache.txt:http://pastebin.com/A0q8YgJg
希望这可以帮助和请评论,如果你需要我详细说明任何步骤。
我要去试试@dilgenter,我会在这里发布它,谢谢 – 2013-08-05 22:30:13
我再次为我的新笔记本电脑安装了opencv-master,opencv-2.4.5和opencv-2.4.7。 OpenCV-2.4.7的imread函数总是返回null,但C-cvImageLoad运行良好,opencv-master的cvLoadImage不起作用cvImageLoad或者我错过了一些东西。但TBB的目录必须是.../bin/ia32不是intel64我的操作系统是64位的,但VS201x 32位这是我的错误。我得到了拼接和gpu错误,Visual Studio告诉你可以使用你所说的@dilgenter的错误,现在它运行良好,但只是2.4.5,我会试着找出为什么2.4.7的imread返回null Mat元素。现在发髻我太忙了 – 2013-12-21 09:52:17
收起
我花了好15小时,以便让使用OpenCV的作业完成。花费了这些时间中的14.5分钟才刚刚完成设置。我浏览了大约7个教程视频,几个设置指南,并阅读了数百个包含解决方案的帖子,以获得与我得到的相同的错误。所以我明白,简单地安装OpenCV并不是一项简单的任务,并且有几个步骤可以执行此操作。所以,如果你想使用openCV,那么这里是一个简单的教程。
重要的是了解事情如何工作尽可能连接。有三种类型的文件,您包含的标题,包含函数的.dll以及包含有关如何调用.dll中的函数的说明的库。因此,在这里,我们将添加lib文件,而不是在输入链接器中仅添加.dlls作为依赖项。然后,我们将创建一个系统环境变量,告诉机器在引用相应的库文件时在哪里查找.dll文件。我们将创建一个属性表,以便当我们创建一个新项目时,我们可以通过点击“添加现有属性表”而不是添加一个新项目来简单地将设置添加到我们的项目中。这样,我们再也不需要经过这个了。
请按照下列步骤EXACTLY并确保Visual Studio是关闭之前持续关
注:当文本在引号中给出的指示进行复制上述文本,不包括引号。
- 首先,容易的部分 - 从他们的网站下载OpenCV 2.4.5。 http://opencv.org/并点击OpenCV for Windows。它会下载OpenCV 2.4.5.exe。
安装OpenCV
下载完成后,双击OpenCV的-2.4.5.exe来运行它。
当被问及提取文件,键入鲍文本框: “C:\”
C:\ OpenCV的应该已经完成后创建。在那里导航以确保。
设置环境变量
Windows 8用户:
- Right click the bottom left corner of your screen when the start icon pops up. - Click "Command Prompt (Admin)" - Type "SETX -m OPENCV_DIR C:\opencv\build" and press enter to set the opencv build directory as a System Environment Variable. Wait for the console to give you confirmation that it is set. - Right click the bottom left corner of your screen when the "Start" icon pops up. Click System -> Advanced System Settings -> Environment Variables - In the "System Variables" list box, under the "Variable" collumn, find "Path". - Highlight the "Path" row and click edit. - Click in the "Variable Value" text box and hit the "end" key on your keyboard to scroll to the end of the line and add a semicolon. - Type the following: "C:\opencv\build\x86\vc10\bin;C:\opencv\build\x86\vc10" and click "OK". This will add the openCV bin directory to the system path.
Windows 7用户:
按照相同的步骤。唯一的区别是你如何到达命令提示符和系统设置。 Google如何根据需要在Windows 7上设置环境变量。
设置Visial工作室
注:我强烈推荐,因为先进的语法高亮编程C++时,使生活变得更轻松VS2012专业。这个版本可以从DreamSpark免费下载和安装。只需制作并记录您的学生证。但是,VS2010和VS2012的步骤是相同的。
打开Visual Studio
- 单击 “新建项目”,并在 “C++”,选择 “Win32控制台应用程序”。
当窗口打开时,单击“下一步”,选中“空白项目”,然后单击“完成”。在没有预编译头文件的情况下,从一个EMPTY PROJECT开始非常重要。
找到“属性管理器”。默认情况下,它应该是一个有时很难错过的选项卡。也可以通过点击工具栏的“查看” - >“物业经理”进行访问。
右键单击“Debug | Win32”并选择“添加新项目属性表”。将其命名为“OpenCVProps”,然后单击“添加”。
右键单击您的新属性表,然后选择“属性”。
从左栏转到“C/C++” - >“常规”,在右边的列表框中选择“Additional Include Directories”并单击“Edit”。
添加以下三个目录:
“$(OPENCV_DIR)\包括”
“$(OPENCV_DIR)\包括\ OpenCV的”
“$(OPENCV_DIR )\ include \ opencv2“
从le ft栏,转到“Linker” - >“General”,在右侧的列表框中选择“Additional Library Directories”并点击“Edit”。
添加以下目录:
- “$(OPENCV_DIR)\ 86 \ VC10 \ LIB”
从左侧栏,进入 “链接” - > “输入”并在右侧的列表框中选择“Additional Dependenies”并单击“Edit”。
将下列.lib文件添加到依赖项中。您可以通过将这些复制并粘贴到该编辑框中来做到这一点。我有意不包含一个要点,以便您轻松复制粘贴这些内容。
opencv_core245d.lib opencv_imgproc245d.lib opencv_highgui245d.lib opencv_ml245d.lib opencv_video245d.lib opencv_features2d245d.lib opencv_calib3d245d.lib opencv_objdetect245d.lib opencv_contrib245d.lib opencv_legacy245d.lib opencv_flann245d。lib
注意:如果构建版本,这些步骤是相同的。但是,在复制和粘贴这些文件时,请从每个文件的末尾删除'd'。 'd'表示它是发布库并链接到发布.dll。
- 恭喜!困难的部分差不多完成了!点击“确定”关闭窗口。
创建和到我们的解决方案资源管理建立一个测试项目
头。这可以从通过工具栏中的“查看”集中 - >“解决方案资源管理”
右键点击“源文件”,然后选择“添加” - >“新建项目”。
选择 “C++文件(的.cpp)”,并命名该文件 “的main.cpp”。点击“添加”。
复制并粘贴以下程序,并在键盘上按下“F7”并观看屏幕左下角以查看是否收到“Build Succeeded”消息。如果是这样,在编译和运行之前只剩下一步!如果没有,请回顾你的步骤,或在下面评论,也许我可以提供帮助。
#include <opencv\cv.h> #include <opencv\highgui.h> int main(int argc, char* argv) { // openCV .image object cv::Mat inputImage; //Create a Window cv::namedWindow("window",1); // Initialize our image. inputImage = cv::imread("Lenna.png"); // Always check to make sure that image has data. if(inputImage.empty()) { std::cout << "Image Failed to Load."; return -1; } else { // All is well, display me. cv::imshow("window",inputImage); // Wait for user to press a key to exit. cvWaitKey(0); } return 0; }
如果构建成功,那么所有剩下的是将图像添加到您的文件夹中。这个位置非常重要。我已经复制了我放入的directoy。按照相同的目录模式。
- “C:\用户\乔希\文档\的Visual Studio 2012 \项目\ ConsoleApplication3 \ ConsoleApplication3 \ Lenna.png”
现在按下 “Ctrl + F5”,以建立,编译和运行以观察窗口中的图像!
* 如果你有一个摄像头 *
- 复制并粘贴下面的代码,以检查是否OpenCV的工作而无需添加图像。这很有用,因为如果上面的代码不起作用,但是这个代码的确如此,那么你知道你把图像放在了错误的文件夹中。
#include #include int main(int argc, char* argv) { // openCV .image object cv::Mat image; //Create a Window cv::namedWindow("window",1); // Create the capture object. cv::VideoCapture device; // Open your webcam. device.open(0); while (1) { // Read data from your device and store it to the image frame. device >> image; // Always check to make sure that image has data. if(image.empty()) { std::cout<< "Image Failed to Load."; return -1; } else { // All is well, display me. cv::imshow("window",image); // Wait for user to press a key to exit. cvWaitKey(33); } } return 0; }
编码愉快!让我知道,如果有什么不工作,我可以修复它!
感谢Josh Sanders和YankeeWhiskey。我使用opencv,编译它没有TBB,openni – 2013-08-05 22:39:31
没问题!你能否选择其中之一作为接受的答案? – 2014-07-10 15:22:43
我又安装了OpenCV的主,OpenCV的-2.4.5和OpenCV-2.4.7都与我的新的笔记本电脑。 OpenCV-2.4.7的imread函数总是返回null,但C-cvImageLoad运行良好,opencv-master的cvLoadImage不起作用cvImageLoad或者我错过了一些东西。但TBB的目录必须是.../bin/ia32不是intel64我的操作系统是64位,但VS201x 32位这是我的错误。我得到了拼接和gpu错误,Visual Studio告诉我这个错误,这通常是内存分配极限错误,我做了和你说的@dilgenter一样的东西,现在它运行良好,但是只有2.4.5和python_d。 lib错误可能会发生,这在调试模式下不成问题我已经从很多论坛网站上了解到这一点。我会试着找出为什么2.4.7的imread返回null Mat元素。但现在我太忙了,这是
- 1. Objective C - SecItemAdd有错误:EXC_BAD_ACCESS(第一次)和errSecDuplicateItem(第二次)
- 2. OpenCV Cuda“无效的设备功能”第一次拨打电话
- 3. 第一次运行Pychecker索引错误
- 4. requestWhenInUseAuthorization错误只在第一次启动
- 5. 第一次尝试在dotnetcore ASP.Net:WebHostBuilder错误
- 6. 第一次运行后Scrapy'twisted.internet.error.ReactorNotRestartable'错误
- 7. 第一次运行后QTCreator段错误
- 8. 第一次访问Grails Webflow错误
- 9. 第一次Django的设置导入错误
- 10. EF 4.1代码第一次错误 - IDENTITY_INSERT设置为OFF
- 11. 如何让Microsoft VCC在第一次构建错误时崩溃?
- 12. 错误验证错误语言的第一次
- 13. 第一次设置路由
- 14. 第一次设置django
- 15. VS2003:如何在第一个错误停止建设
- 16. 第一个Android项目构建错误
- 17. 错误建立一个生产建设
- 18. OpenCV cvHaarDetectObject错误
- 19. opencv link1104错误
- 20. Opencv python错误
- 21. OpenCV的 - 错误
- 22. OpenCV错误(cvCreateFileCapture())
- 23. OpenCV HOGDescriptor.compute错误
- 24. OpenCV MatIterator错误
- 25. OpenCV CascadeClassifier错误
- 26. OpenCV Makefile错误
- 27. opencv的错误
- 28. 建设opencv,得到undefined参考avformat_network_init错误
- 29. cmake中断OpenCV建设与CUDA支持没有错误
- 30. CookieHelper错误,一次又一次地创建cookie
听起来像你的cmake配置你建立它支持tbb库(tbb - >线程构建模块),但无法找到它(你或者没有它,或者路径错误)。假设您通过cmake GUI配置了cmake版本,请尝试取消选中tbb选项并重新生成.sln文件 – alrikai 2013-04-24 20:27:26
谢谢@alrikai,但我在opencv-2.4.5/dep/tbb中添加了tbb ....并且我已经在cmake中显示它像其他示例openexr,eigen,qt,cuda,带有主传感器的openni,带有numpy和狮身人面像的python,clAmdBlas和Fft ...以及使用cmake GUI执行这些操作。并用路径编辑器添加tbb的bin路径 – 2013-04-24 20:38:20
tbb .lib文件的路径是否正确? – alrikai 2013-04-24 21:18:20