Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ &引用;无法定位DLL";使用opencv从摄像机捕获视频时_C++_Opencv_Dll - Fatal编程技术网

C++ &引用;无法定位DLL";使用opencv从摄像机捕获视频时

C++ &引用;无法定位DLL";使用opencv从摄像机捕获视频时,c++,opencv,dll,C++,Opencv,Dll,我在互联网上应用了安装opencv 2.9的教程,但我得到了 Unhandled exception at 0x00007FFC6470C0B4 (ntdll.dll) in Project11.exe: 0xC0000135: Unable to Locate DLL. 我尝试了下面的代码,但无法解决它 #include "stdafx.h" #include <stdio.h> #include <opencv2/opencv.hpp> #include <

我在互联网上应用了安装opencv 2.9的教程,但我得到了

Unhandled exception at 0x00007FFC6470C0B4 (ntdll.dll) in Project11.exe: 
0xC0000135: Unable to Locate DLL.
我尝试了下面的代码,但无法解决它

#include "stdafx.h"
#include <stdio.h>
#include <opencv2/opencv.hpp>
#include <iostream>
#include <stdio.h>
#include "opencv.hpp"

int main(){
    CvCapture *camera=cvCaptureFromFile("rtsp://192.168.1.19:554/0/1:1/main");
    if (camera==NULL)
    printf("camera is null\n"); 
    else
    printf("camera is not null");

    cvNamedWindow("img");
    while (cvWaitKey(10)!=atoi("q")){
            IplImage *img=cvQueryFrame(camera);
            cvShowImage("img",img);
    }
    cvReleaseCapture(&camera);
}
#包括“stdafx.h”
#包括
#包括
#包括
#包括
#包括“opencv.hpp”
int main(){
CvCapture*camera=cvCaptureFromFile(“rtsp://192.168.1.19:554/0/1:1/main");
如果(摄像机==NULL)
printf(“照相机为空\n”);
其他的
printf(“摄像机不为空”);
CVD公司(“img”);
while(cvWaitKey(10)!=atoi(“q”)){
IplImage*img=cvQueryFrame(摄像机);
cvShowImage(“img”,img);
}
cvReleaseCapture(相机和相机);
}

如错误消息所述,Windows无法找到所需的DLL。 此错误很可能是由于缺少
OpenCV
DLL造成的必须将其放置在以下位置之一

  • 在您的
    System32
    目录中(通常
    C:\Windows\System 32
  • 与可执行文件位于同一目录中
  • 附加到系统的
    路径
    环境变量
有关正确安装OpenCV库的更多信息,请参见本页

您正试图使用
OpenCV
库源代码中的单个文件。虽然这可能有效,但并不可取


TL:DR您必须找到
opencv_core[此处的版本号]
并将其放置在我上面提到的位置之一。

您应该复制System32目录(通常是C:\Windows\System 32)中的dll文件(C:\opencv\build\x64\vc11\bin)

,正如错误消息所说,它无法找到dll。你的包裹真奇怪!在使用OpenCV.HPP时,这意味着你必须使用C++ OpenCV API,但是代码是C的,我一定会重申C++你的生活会更easier@Engine我会亲自研究你的拼写/语法…@Engine他们的
#include
很奇怪,因为他们试图使用库中源代码中的单个代码文件。@cybermonkey他刚刚编辑了这个问题,完全错了@引擎,嗯?我不明白。@Downvoter:要不要评论一下你为什么投了否决票,而不是“按门铃跑”呢?我的回答为他们的问题提供了正确答案。请不要建议移动DLL,这太可怕了。相反,应该将包含opencv DLL的文件夹附加到PATH env变量。(是的,我是你们的选民之一)@berak这“可怕”是怎么回事?任何外部DLL都应该包含在可执行文件的目录中,附加到PATH环境变量中,或者(不推荐)放在
Windows
目录中。我编辑以反映这一点。我应用了教程中的路径环境变量问题,并从visual studio中引用了它。它仍然会导致错误复制DLL完全违背了“共享”库的概念。想象一下,您有20个使用opencv的程序,都有调试版本和发布版本。