Вопрос по c++ – Как скомпилировать OpenCV с помощью libjpeg-turbo?

10

Я использую OpenCV 2.3.1 на OS X Lion в одном из моих проектов на C ++. Хотя мой проект работает как есть, он сильно зависит от декодирования и кодирования JPEG. Я хотел бы получить ускорение с помощью libjpeg-turbo, но я не могу найти правильный способ связи с libjpeg-turbo. В зависимости от моих попыток взлома и того, какие файлы я редактирую, я либо получаю ошибки компиляции, либо бесполезную библиотеку OpenCV (все компилируется правильно, но я не могу открывать или записывать файлы JPEG, хотя в проекте C ++ ошибок не возникает).

Может кто-нибудь объяснить, как вы можете скомпилировать OpenCV с помощью libjpeg-turbo для более быстрого декодирования / кодирования JPEG?

Ваш Ответ

2   ответа
19

libjpeg-turbo тебе нужно

buildlibjpeg-turbo как статическая библиотека настроить OpenCV с помощью следующей команды:

cmake -DWITH_JPEG=ON -DBUILD_JPEG=OFF -DJPEG_INCLUDE_DIR=/path/to/libjepeg-turbo/include/ -DJPEG_LIBRARY=/path/to/libjpeg-turbo/lib/libjpeg.a /path/to/OpenCV

OpenCV 2.3.1 не может быть собран с libjpeg-turbo без модификации исходного кода. Andrey Kamaev
Спасибо вам и мои извинения за поздний ответ. Хотя сначала это не сработало, это было связано главным образом с ошибкой пользователя. Общее время выполнения сократилось почти на 30%, а открытие и запись фактического файла JPEG получили колоссальные 50% + улучшения. kvaruni
2

https: //github.com/opencv/opencv/pull/1149

Он находится в текущем мастере и будет доступен в следующей версии 3.4.2

В заключение. Если вы хотите проверить, что использует OpenCV, используйте вызов cv :: getBuildInformation (). Из python import cv2 print cv2.getBuildInformation () В выводе вы должны увидеть ссылку на libjpeg-turbo, если он используется. D Dowling

Похожие вопросы