dlib庫使用


最近的工作中用到了dlib這個庫,該庫是一個機器學習的開源庫,使用起來很方便,直接包含頭文件即可,並且不依賴於其他庫(自帶圖像編解碼庫源碼)。不過由於是開源的,所以bug多少有一些,我在example編譯和使用時就遇到了一些問題,總結如下:

 

1.example編譯

按照官網的指導,下載最新的18.18版本dlib,然后解壓縮到某個路徑。dlib庫不用單獨編譯,只需要編譯example,即可看到效果。根據README.txt文件中的步驟,在exmaple文件夾下,執行下面命令即可,

mkdir build

cd build

cmake .. 

cmake --build .

但是一般在最后一步會遇到一些問題,導致編譯失敗,解決方法如下:

1.在dlib/CMakeLists.txt中 project(dlib) 的下一行添加set(Boost_USE_STATIC_LIBS ON)

2.把 if (DLIB_PNG_SUPPORT) (227行左右)這一行以下的這些代碼進行注釋,其余不變

         # try to find libpng 
         #find_package(PNG QUIET)
         # Make sure there isn't something wrong with the version of LIBPNG
         # installed on this system.  
         #if (PNG_FOUND)
            #set(CMAKE_REQUIRED_LIBRARIES ${PNG_LIBRARY})
            #CHECK_FUNCTION_EXISTS(png_create_read_struct LIBPNG_IS_GOOD)
         #endif()
         #if (PNG_FOUND AND LIBPNG_IS_GOOD)
            #include_directories(${PNG_INCLUDE_DIR})
            #set (dlib_needed_libraries ${dlib_needed_libraries} ${PNG_LIBRARY})
         #else()
            # If we can't find libpng then statically compile it in.

3.把 if (DLIB_JPEG_SUPPORT) (280行左右)這一行以下的這些代碼進行注釋,其余不變

         # try to find libjpeg 
         #find_package(JPEG QUIET)
         # Make sure there isn't something wrong with the version of libjpeg 
         # installed on this system.  Also don't use the installed libjpeg
         # if this is an APPLE system because apparently it's broken (as of 2015/01/01).
         #if (JPEG_FOUND)
            #set(CMAKE_REQUIRED_LIBRARIES ${JPEG_LIBRARY})
            #CHECK_FUNCTION_EXISTS(jpeg_read_header LIBJPEG_IS_GOOD)
         #endif()
         #if (JPEG_FOUND AND LIBJPEG_IS_GOOD AND NOT APPLE)
            #include_directories(${JPEG_INCLUDE_DIR})
            #set (dlib_needed_libraries ${dlib_needed_libraries} ${JPEG_LIBRARY})
         #else()
            # If we can't find libjpeg then statically compile it in.

 

這樣應該就可以編譯通過了,編譯出的二進制文件應該也可以執行,如果執行時依然報錯找不到jpeg或png庫,再確認一下CMakeLists文件是否按照上述修改。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM