OpenCV требует библиотеку libjpeg для чтения вашего jpg-файла, и она динамически загружается (например, DLL) при запуске вашей программы.Программа ищет эту динамическую библиотеку по заранее заданному пути - /usr/local/opt/jpeg/lib/libjpeg.9.dylib
, и, скорее всего, у вас там нет этого файла.
Первый шаг - найти эту библиотеку на вашем компьютере, что вы можете сделать с помощью:выполняется:
sudo find / -name 'libjpeg.*'
Если ничего не найдено (как это случилось со мной), у вас есть несколько вариантов: собрать библиотеку из исходного кода, найти предварительно собранную библиотеку и загрузить ее или установить изменеджер пакетов (например, Brew или MacPorts).Вероятно, я бы попробовал варево первым.Примечание: вам, вероятно, нужна версия 9 библиотеки libjpeg.
brew install libjpeg
команда сработала для меня.(сначала нужно установить brew ).
Шаг 2: когда вы получаете библиотеку, вам нужно убедиться, что программа может ее найти.Обычно есть способ переопределить жестко закодированный путь, такой как /usr/local/opt
во время сборки, используя некоторую переменную сценария сборки где-нибудь в сценариях сборки OpenCV.Более простым способом может быть либо установить его там, где он ожидает (в /usr/local/opt
), либо создать символическую ссылку с этого пути в реальное местоположение.
Я использовал brew, и он фактически установил егопо ожидаемому пути:
bash-3.2$ pwd
/usr/local/opt/libjpeg/lib
bash-3.2$ ls
libjpeg.9.dylib libjpeg.a libjpeg.dylib pkgconfig
bash-3.2$ brew info libjpeg
jpeg: stable 9c (bottled)
Image manipulation library
http://www.ijg.org
/usr/local/Cellar/jpeg/9c (21 files, 724.6KB) *