Установка OpenCV на ошибку Mac

Мне трудно установить OpenCV на Mac (OS X 10.8.4) и xcode 4.6.3.

Я пробовал Macports и Homebrew для того же и потерпел неудачу и даже близко не запустил его. Обычно это ошибка «Ошибка: не удалось установить bzip2» или «Ошибка: сбой при обработке порта opencv». Я за прокси, и это может быть проблемой.

Самый простой и наиболее близкий к завершению способ: использование Cmake, а затем OpenCV для установки с помощью терминала. Затем используйте xcode, как показано на странице http://sadeepj.blogspot.in/2012/03/installing-and-configuring-opencv-to.html, но проблема возникла при сборке проекта в xcode. Я установил значение путей поиска заголовков в /usr/local/include и даже добавил эти 2 файла «libopencv_core.2.4.5.dylib и libopencv_highgui.2.4.5.dylib» для проекта.

Файл main.cpp

   #include <iostream>
   #include <opencv2/opencv.hpp>

   using namespace std;
   using namespace cv;

   int main (int argc, const char * argv[])
   {
       Mat img = imread("/Users/mhtgwl/Desktop/baba.jpg"); //Change the image path here.
       if (img.data == 0) {
           cerr << "Image not found!" << endl;
           return -1;
       }
       namedWindow("image", CV_WINDOW_AUTOSIZE);
       imshow("image", img);
       waitKey();
   }

Ошибка «ld: библиотека не найдена для -lopencv_core.2.4.5 clang: ошибка: команда компоновщика не удалась с кодом выхода 1 (используйте -v, чтобы увидеть вызов)», и я попытался изменить целевую версию ОС и изменить путь поиска библиотеки на /usr/local/include, но это не помогает.


person mohit    schedule 10.07.2013    source источник
comment
@Totoro Извините, это было «libopencv_core.2.4.5.dylib и libopencv_highgui.2.4.5.dylib». И я проверил, что он установлен в /usr/local/lib   -  person mohit    schedule 11.07.2013


Ответы (3)


Если вы используете настройки по умолчанию, файлы opencv будут внутри /usr/local/lib и /usr/local/include, в этом не должно быть никаких сомнений.

Для настроек Xcode я использую:

  1. создать проект инструмента командной строки.
  2. добавьте код, как вы это сделали.
  3. добавьте файлы lib, щелкните правой кнопкой мыши имя вашего проекта, выберите «Добавить файлы в..», когда появится новое диалоговое окно, нажмите клавишу «/», затем введите «/usr/local/lib», выберите файлы dylib по мере необходимости ( Я выбрал все для простоты).
  4. добавить lib: дважды щелкните имя проекта для настроек проекта, в «Настройки сборки» добавьте «/usr/local/lib» (рекурсивный) для «Пути поиска библиотеки».
  5. добавить заголовок: добавьте «/usr/local/include» (нерекурсивный) для «Пути поиска заголовков»
  6. также на вкладке "Настройки сборки" отфильтруйте по "стандартной библиотеке c++" и установите для этого параметра значение libstdc++ (стандартная библиотека GNU C++).

Если вы внимательно выполните все эти шаги, я уверен, что ваш код будет работать.

person PaulYang    schedule 11.07.2013
comment
Как вы сказали, код сработал. Но он показал ошибку-dyld: Библиотека не загружена: cv2.so Ссылка на: /Users/mhtgwl/Library/Developer/Xcode/DerivedData/test-feqvdmafymucqibnfkvbscgmyjip/Build/Products/Debug/test Причина: изображение не найдено (lldb) . Если бы вы могли помочь мне и с этим, я был бы очень признателен. - person mohit; 11.07.2013
comment
Я регулярно пишу и запускаю код с настройками, аналогичными приведенным в этом ответе, и у меня нет ошибок. Просто интересно, почему в ошибке упоминается cv2.so - статическая библиотека - когда файлы dylib уже добавлены. - person Totoro; 12.07.2013

Пока вы добавили в проект libopencv_core.2.3.1.dylib и libopencv_highgui.2.3.1.dylib, компоновщик ищет -lopencv_core.2.4.5 (libopencv_core.2.4.5.dylib и т. д. и т. д.) . На вашем компьютере может быть установлена ​​более старая версия Opencv в /usr/local/lib. Попробуйте найти версию 2.4.5 и добавить эти файлы в проект.

Для OS X 10.8 файлы lib могут быть установлены в /opt/local/lib вместо /usr/local/lib. Это зависит от выбранного вами способа установки.

person Totoro    schedule 11.07.2013
comment
Извините, это было «libopencv_core.2.4.5.dylib и libopencv_highgui.2.4.5.dylib». И я проверил, что он установлен в /usr/local/lib - person mohit; 11.07.2013

У меня была такая же проблема раньше. Что вам нужно сделать, так это не включать два каталога «pkgconfig» и «python2.7» при добавлении файлов dylib в проект. Кажется, что cv2.so — это файл в каталоге python2.7.

person Kevin    schedule 08.04.2014