每次我将编译好的OpenCV程序运行都会报错,下面是恶心的错误提示窗口:
我将opencv_world310d.dll放到工程文件夹下后,程序就运行正常了。虽然这样可以暂时解决问题,但是总是感觉不舒服。我想知道为什么会这样,另外有没有好的解决方案可以彻底解决这个问题,不用每次添加opencv_world310d.dll文件。
如果有人想看代码的话,我这里干脆就放一个OpenCV的测试代码吧。这个代码编译是没问题的,但是在我的电脑上一运行就会出现前面我说的问题。
#include "stdafx.h"
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <iostream>
using namespace cv;
using namespace std;
int main(int argc, char** argv)
{
Mat image;
image = imread("opencv-logo.png", IMREAD_COLOR);
if (!image.data) // 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;
}
Note:顺便说一下,我的vs版本是2015,opencv版本是3.1,系统是win10.
もっと合理的な答えを見つけました。まず、以前OpenCVを使っていたときは問題なかったのですが、システムアップグレード後に問題が発生したので、おそらくシステムアップグレードが原因でこの問題が発生したのだと思います。
それではどうやって解決すればいいのでしょうか?実際、これは非常に簡単で、不足しているダイナミック リンク ライブラリをパス
C:\Windows\System32
またはC:\Windows\SysWOW64
に追加するだけです。毎回インストールする必要はありません。今回は、プロジェクトが存在するフォルダーにダイナミック リンク ライブラリを配置します。もちろん @araraloren さんの方法も可能なはずです。これはプログラムの実行に必要なランタイム ライブラリです。これを実行したくない場合は、静的にコンパイルすることもできますが、これには静的な
opencv
ライブラリが必要です。