繁体   English   中英

OpenCV不适用于Visual Studio

[英]OpenCV doesn't work with Visual Studio

我刚刚安装了openCV版本。 我的计算机上安装了3.00 beta版,我正在尝试使用VS2013对其进行测试。 我遵循了快速入门指南:

1)使用预构建库安装Windows

2) 在Microsoft VS中使用OpenCV ,使用本地方法和x64/vc12目录作为库。

结果,他们的示例(在链接2中列出)产生了一个错误:

#include <opencv2/core.hpp>
#include <opencv2/imgcodecs.hpp>
#include <opencv2/highgui.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], IMREAD_COLOR); // Read the file

    if (image.empty()) // Check for invalid input
    {
        cout << "Could not open or find the image" << std::endl;
        return -1;
    }

    namedWindow("Display window", WINDOW_AUTOSIZE); // Create a window for display.
    imshow("Display window", image); // Show our image inside it.

    waitKey(0); // Wait for a keystroke in the window
    return 0;
}

输出为:

1>------ Build started: Project: test_openCV, Configuration: Debug Win32 ------
1>LINK : fatal error LNK1104: cannot open file 'opencv_calib3d300d.lib'
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

据我了解,我的程序可以看到openCV库,但是由于某种原因无法打开它们。 请帮忙。

谢谢

更新:尝试执行前四个注释中建议的操作,但仍然没有结果。 因此,我将在此处发布完整信息:

项目:CUDA 6.5(我需要使用CUDA)。

源文件: Source.cpp

模式:调试,x64。

环境变量:

OPENCV_DIR: C:\programs\misha\opencv\build\x64\vc12

Path (the last string): %OPENCV_DIR%\bin

页面属性:

C\C++ -> General -> Additional Include Directories(last string):
    $(OPENCV_DIR)\..\..\include
Linker -> General -> Additional Library Directories(last string):
    $(OPENCV_DIR)\lib
Linker -> Input -> Additional Dependencies:
    opencv_calib3d300d.lib
    opencv_core300d.lib
    opencv_features2d300d.lib
    opencv_flann300d.lib
    opencv_highgui300d.lib
    opencv_imgcodecs300d.lib
    opencv_imgproc300d.lib
    opencv_ml300d.lib
    opencv_objdetect300d.lib
    opencv_photo300d.lib
    opencv_shape300d.lib
    opencv_stitching300d.lib
    opencv_superres300d.lib
    opencv_ts300d.lib
    opencv_video300d.lib
    opencv_videoio300d.lib
    opencv_videostab300d.lib

输出:

1>------ Build started: Project: test_openCV, Configuration: Debug x64 ------
1>LINK : fatal error LNK1104: cannot open file 'opencv_calib3d300d.lib'
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

因此,由于某种原因,我无法构建x64项目。 错误是一样的。

更新2: 如果可以构建此示例(或任何带有OpenCV的示例),请发送至genkin@physics.msu.ru吗? 我自己弄清楚

经过长时间的尝试,我在这里找到了答案。 对于x64项目,除了我上面所做的之外,还必须:

1)设置环境变量后,重新启动PC。 变量路径没有重新启动就没有在我的计算机上更新。

2)除了上面添加的库之外,您还必须添加(尽管对于本示例来说,其中一些可能不会使用):

ippicvmt.lib
IlmImfd.lib
libtiffd.lib 
libpngd.lib
libjasperd.lib
libjpegd.lib
libwebpd.lib
zlibd.lib
comctl32.lib

编辑:最近我不得不在新PC上再次安装它。 正如user1060873所指出的,您只需要添加$ OPENCV $ / lib文件夹中的库。 例如,在我的PC上是C:\\opencv\\build\\x64\\vc12\\lib 注意,对于调试模式,您应该添加opencv_world310d.lib ,对于发行版opencv_world310.lib

不幸的是,该解决方案对我不起作用。

我通过添加仅位于$(OPENCV_DIR)\\ lib文件夹中的那些库作为附加依赖项(链接器->输入->附加依赖项)来使其工作。 即:opencv_ts300d.lib; opencv_world300d.lib。

我也面临着同样的问题。 我在VS2015和OpenCV 3.2中使用win7 x64,经过数小时的奋斗,我终于找到了答案。 每个版本都不相同,可能会有一些差异。 这就是我所做的:

  1. $OPENCV$/lib文件夹中找到其他库所在的库
  2. 仅将那些$OPENCV$/lib文件夹放入其他库( Project properties, Configuration Properties, Linker, Input )。 就我而言,我将opencv_world300d.lib根据最新的官方教程! )放入我的附加库中。 但是,当我检查库文件夹之后,有opencv_world320d.lib ,所以我写了320,而不是300。

通过取消选中“链接器”->“输入”->“其他依赖项”下的“从父项或项目默认项继承”复选框来解决此问题

自从我使用opencv 3.0.0 build x64 vc11以来,我添加了“ opencv_world300d.lib”

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM