【问题标题】:How to compile OpenCV with libjpeg-turbo?如何使用 libjpeg-turbo 编译 OpenCV?
【发布时间】:2018-06-29 16:48:55
【问题描述】:

我在我的一个 C++ 项目中在 OS X Lion 上使用 OpenCV 2.3.1。虽然我的项目按原样运行良好,但它在很大程度上取决于 JPEG 解码和编码。我想通过使用 libjpeg-turbo 来获得加速,但我找不到与 libjpeg-turbo 链接的正确方法。根据我的骇客尝试和我编辑的文件,我最终会出现编译错误或无用的 OpenCV 库(一切都正确编译,但我无法打开或写入 JPEG 文件,尽管 C++ 项目中没有出现错误)。

谁能解释一下如何使用 libjpeg-turbo 编译 OpenCV 以实现更快的 JPEG 解码/编码?

【问题讨论】:

    标签: c++ opencv libjpeg-turbo


    【解决方案1】:

    要使用libjpeg-turbo 构建 OpenCV 2.4.0,您需要:

    1. 将libjpeg-turbo 构建为静态库
    2. 使用以下命令配置 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 构建,无需修改源代码。
    • 感谢您和我对迟到的回复表示歉意。虽然起初它不起作用,但这主要是由于用户错误。总体执行时间减少了近 30%,打开和写入实际 JPEG 文件的速度提高了 50% 以上。
    【解决方案2】:

    OpenCV 现在已经完全用 libjpeg-turbo 替换了 libjpeg: https://github.com/opencv/opencv/pull/11497

    它在当前的master中,将在即将到来的3.4.2中可用

    【讨论】:

    • 最后。如果要检查 OpenCV 正在使用什么,请使用 cv::getBuildInformation() 调用。 From python import cv2 print cv2.getBuildInformation() 在输出中,如果正在使用,您应该会看到对 libjpeg-turbo 的一些引用。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-21
    相关资源
    最近更新 更多