OpenCV2學習筆記03:Qt中配置OpenCV環境


在Qt中開發基於OpenCV的應用時,需要配置對應函數庫到環境變量,這時候我們需要使用到qmake能夠識別的變量來指定環境變量。

INCLUDEPATH: 用於指定搜索頭文件到文件夾路徑。

LIBS: 包含鏈接時的庫文件列表。使用-L來指定文件夾路徑,-l來指定庫的名稱。

而這些配置,我們需要寫入到對應到工程文件(*.pro)當中,可以有兩種寫法。

第一種:直接指定包含到庫文件名稱。

1 INCLUDEPATH += /usr/local/include/opencv2/
2 
3 LIBS += /usr/local/lib/libopencv_core.so \
4         /usr/local/lib/libopencv_highgui.so \
5         /usr/local/lib/libopencv_imgproc.so

這種方法必須指定整個文件到完整路徑及名稱,編寫起來相對麻煩一點。

 

第二種:指定庫文件路徑和庫名稱。

1 INCLUDEPATH += /usr/local/include/opencv2/
2 LIBS += -L/usr/local/lib/ \
3     -lopencv_core\
4     -lopencv_highgui\
5     -lopencv_imgproc

這里只需要先聲明庫文件的位置,然后使用-l參數來添加庫名稱即可。

 

2014-12-10補充:

      以上介紹的方法是Linux上或者是Window下MinGW版本的Qt環境下使用方法,如果你使用的是MSVC編譯器的Qt環境,那么在編譯OpenCV庫是會在庫文件后面添加一個版本號后綴,因此在使用這類環境進行OpenCV應用程序開發的時候,你就需要在以上基礎上做稍微的修改,以我在Windows 7 64位平台上使用VS2012編譯的OpenCV 2.4.9為例,在*pro中配置OpenCV庫環境支持時使用的庫添加命令代碼如下:

1 #for OpenCV Lib
2 INCLUDEPATH += C:/opencv/install/include/
3 LIBS += -LC:/opencv/install/x64/vc11/lib/ \
4         -lopencv_core249  \
5         -lopencv_highgui249 \
6         -lopencv_imgproc249

 

我在Mac上運行以上代碼時,提示以下錯誤:

dyld: Symbol not found: __cg_jpeg_resync_to_restart
  Referenced from: /System/Library/Frameworks/ImageIO.framework/Versions/A/ImageIO
  Expected in: /usr/local/lib/libJPEG.dylib
 in /System/Library/Frameworks/ImageIO.framework/Versions/A/ImageIO

解決辦法是將“”目錄下的對應動態鏈接庫文件創建軟連接到“/usr/local/lib”目錄下:

$ pwd
/System/Library/Frameworks/ImageIO.framework/Versions/A/Resources
$ sudo ln -sf libJPEG.dylib /usr/local/lib/libJPEG.dylib
$ sudo ln -sf libPng.dylib /usr/local/lib/libPng.dylib
$ sudo ln -sf libTIFF.dylib /usr/local/lib/libTIFF.dylib

 


免責聲明!

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



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