gpt4 book ai didi

visual-studio - Visual Studio 上的 OpenCV 设置问题

转载 作者:行者123 更新时间:2023-12-02 16:49:47 25 4
gpt4 key购买 nike

我正在尝试在 64 位 Windows 7 系统中使用 Microsoft Visual Studio 2008 设置一个简单的 OpenCV 项目。我没有系统的管理员权限,因此我不能在这里重新安装 OpenCV。

但是,我确实有在类似平台上编译的 OpenCV 的 bin、include 和 lib 目录。

我启动了一个“Visual C++ -> General -> Empty Project”并创建了一个 .cpp 文件,内容如下:

#include <opencv/cv.h>
#include <opencv/highgui.h>
void main()
{
cv::Mat frame = cv::imread("D:\\Images\\lena.bmp");
cv::imwrite("D:\\lena_bw.bmp",frame);
}

在'Property->Configuration Property->C/C++->General->Additional Include Directories'中,我提供了OpenCV的'include'目录的链接。

在“属性->配置属性->链接器->输入->附加依赖项”中,我提供了 opencv_core230.lib、opencv_highgui230.lib、opencv_imgproc230.lib 等的路径。

代码构建良好,但是当我运行它时,我得到:
Unhandled exception at 0x734761e7 in OpenCVTest.exe: 0xC0000005: Access violation reading location 0xcccccccc.

No symbols are loaded for any call stack frame. The source code cannot be displayed.

我自己的想法无处可去。我对 Visual Studio 平台有点陌生。

请帮我找出一种方法来完成这项工作。

++++++++++++++++++++++++++++++++++++++++++++++++++++

在“发布”模式下运行时,编译过程中出现以下错误:
1>HelloOpenCV.obj : error LNK2001: unresolved external symbol "public: __thiscall cv::_InputArray::_InputArray(class cv::Mat const &)" (??0_InputArray@cv@@QAE@ABVMat@1@@Z)
1>HelloOpenCV.obj : error LNK2001: unresolved external symbol "void __cdecl cv::fastFree(void *)" (?fastFree@cv@@YAXPAX@Z)
1>HelloOpenCV.obj : error LNK2001: unresolved external symbol "class cv::Mat __cdecl cv::imread(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,int)" (?imread@cv@@YA?AVMat@1@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@H@Z)
1>HelloOpenCV.obj : error LNK2001: unresolved external symbol "public: void __thiscall cv::Mat::deallocate(void)" (?deallocate@Mat@cv@@QAEXXZ)
1>HelloOpenCV.obj : error LNK2001: unresolved external symbol "bool __cdecl cv::imwrite(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,class cv::_InputArray const &,class std::vector<int,class std::allocator<int> > const &)" (?imwrite@cv@@YA_NABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@ABV_InputArray@1@ABV?$vector@HV?$allocator@H@std@@@3@@Z)

最佳答案

我正在为您提供不需要管理员权限的详细设置说明。避免在C盘做事。

1) 启动 VS2010 并选择“新建项目...”。

2) 选择“Empty Project”,输入名称,选择放置项目的位置。按“确定”。

3)现在我们从头开始创建了一个项目。是时候链接这些库并让我们的项目使用 OpenCV。
通过单击下面的选项卡切换到属性管理器。如果您找不到该选项卡,您可以从菜单 View 访问属性管理器。

4)默认属性是针对32位系统的(注意Win32后缀),因为你使用的是64位系统,下面我将介绍64位系统的配置。
如果您的已经是 x64 或者您想使用 32 位开发,请离开此步骤。
从“构建”菜单中,选择“配置管理器”。在“事件解决方案平台”下,Win32 应该默认选择。单击它并选择“新建...”。
选择“x64”作为新平台,然后选择 Win32 来复制设置。确保选中“创建新项目平台”。

5) INCLUDE在“Common Properties” -> “C/C++” -> “General”下,编辑“Additional Include Directories”并添加浏览此路径以添加“..\OpenCV\build\include”。重要的是选择“build”文件夹下的“include”文件夹,而不是任何其他“include”文件夹。

6) LINK LIB在“Common Properties” -> “Linker” -> “General”下,编辑“Additional Library Directories”并添加“..\OpenCV\build\x64\vc9\lib”。这里“x64”代表 64 位系统,如果您使用 32 位,请将其更改为 x86。 “vc9”代表 Visual C++ 2008,假设您使用的是 VS2008,请保留它,对于 Visual Studio 2010 使用 vc10。

7) LIB INPUT在“Common Properties” -> “Linker” -> “Input”下,编辑“Additional Dependencies”并添加以下lib文件:

[调试]
opencv_core242d.libopencv_highgui242d.libopencv_imgproc242d.lib
[发布]
opencv_core242.libopencv_highgui242.libopencv_imgproc242.lib
这里,命名为:LibName_Version_Debug.lib 即 opencv_imgproc242d.lib 是 opencv_imgproc 是库名,242 是 opencv 版本和 d 最后指出调试库,如果你不使用 Debug模式,不要使用带“d”的库。
我添加了非常基本的库,您可能需要根据您的代码添加更多。

8) 除链接库文件名外,“发布”配置的步骤相同。你只需要去掉点之前的“d”字母。

您的代码应该在没有任何提示的情况下构建。但是在运行时,您应该会收到有关缺少 dll 的错误。

9) DLL在您的项目文件夹中找到 exe/output,根据您的开发模式,它的名称应该是 release/debug,它应该有一个输出的 exe 文件。从“..\OpenCV\build\x64\vc9\bin”(对于 x64)或“..\OpenCV\build\x64\vc9\bin”复制 dll 文件(如果使用 Debug模式,则以字母“d”结尾) (对于 32 位)和该文件夹。

关于visual-studio - Visual Studio 上的 OpenCV 设置问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25506233/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com