OpenCV:加载库 libopencv_calib3d.2.4.dylib 失败时出错

Posted

技术标签:

【中文标题】OpenCV:加载库 libopencv_calib3d.2.4.dylib 失败时出错【英文标题】:OpenCV: Error for failure to load library libopencv_calib3d.2.4.dylib 【发布时间】:2014-07-28 02:45:53 【问题描述】:

我正在尝试在我的 Mac 上设置 openCV(随 homebrew 安装)并运行以下命令。

g++ $(pkg-config --cflags --libs opencv) test.cpp -o Test& ./test

但是,我收到了这个错误:

[1] 7834
dyld: Library not loaded: lib/libopencv_calib3d.2.4.dylib
  Referenced from: /usr/local/Cellar/opencv/2.4.9/include/./test
  Reason: image not found
Trace/BPT trap: 5

对于 openCV 和 C++ 来说非常新手,我不确定如何处理这个问题。

下面显示了文件结构。 test.cpp 文件与图片一起位于右侧第二个。我看不出程序如何找不到文件,因为名称和位置似乎是正确的。

test.cpp:

#include "opencv2/highgui/highgui.hpp"
#include <iostream>

using namespace cv;
using namespace std;

int main( int argc, const char** argv )

    cout << "test output line" << endl;
     Mat img = imread("MyPic.JPG", CV_LOAD_IMAGE_UNCHANGED); //read the image data in the file "MyPic.JPG" and store it in 'img'

     if (img.empty()) //check whether the image is loaded or not
     
          cout << "Error : Image cannot be loaded..!!" << endl;
          //system("pause"); //wait for a key press
          return -1;
     

     namedWindow("MyWindow", CV_WINDOW_AUTOSIZE); //create a window with the name "MyWindow"
     imshow("MyWindow", img); //display the image which is stored in the 'img' in the "MyWindow" window

     waitKey(0); //wait infinite time for a keypress

     destroyWindow("MyWindow"); //destroy the window with the name, "MyWindow"

     return 0;

【问题讨论】:

【参考方案1】:

想通了。从/usr/local/Cellar/opencv/2.4.9/lib 复制.dylib 文件并将它们粘贴到/usr/lib

【讨论】:

这不是必须的;安装后运行的brew link opencv 应该已经为您将符号链接到 /usr/local/lib 中。您可以尝试再次运行链接步骤(可能使用 --force)以确保一切都在正确的位置。如果您将复制的文件留在 /usr/lib 中,Homebrew 将无法升级它们。 将/usr/local/Cellar/opencv/3.2.0/include/opencv & opencv2 也复制到/usr/local/include 中!【参考方案2】:

将所有lib文件(即.dll格式)复制到您的项目文件夹中。它将从该文件夹中读取所有必需的文件

【讨论】:

以上是关于OpenCV:加载库 libopencv_calib3d.2.4.dylib 失败时出错的主要内容,如果未能解决你的问题,请参考以下文章

在QtCreator 2.1.0 下使用opencv231库加载图片并显示

Python_opencv库

在android L上加载OpenCV时如何删除日志记录

linux下如何调用opencv库生成

OpenCV不会加载图像

vs2013无法用opencv加载图片