本文記錄在 Windows 7 環境下,使用 MinGW 編譯 OpenCV 2.0 並配置 Qt Creator 專案的完整步驟,供需整合電腦視覺功能的 Qt 開發者參考。
tdm-mingw-1.908.0-4.4.1-2.exe 安裝,將 bin 目錄加入系統 PATHD:\OpenCV)D:\OpenCV\build)MinGW Makefiles,指定編譯器為 gcc.exe/g++.exeBUILD_EXAMPLES 等依需求選項mingw32-make (或 make),等待編譯完成,生成 lib/*.dll.a 與 bin/*.dll# 確保路徑無空格
INCLUDEPATH += D:/OpenCV/build/include/opencv \
D:/OpenCV/build/include
LIBS += -LD:/OpenCV/build/lib \
-lopencv_core200 \
-lopencv_imgproc200 \
-lopencv_highgui200 \
-lopencv_ml200 \
-lopencv_video200 \
-lopencv_features2d200 \
-lopencv_calib3d200 \
-lopencv_objdetect200 \
-lopencv_contrib200 \
-lopencv_legacy200 \
-lopencv_flann200
注意:
cv200 → opencv_core200)D:/OpenCV/build/bin 加入系統 PATH 或複製 DLL 至專案建置目錄debug_and_release,需確保 OpenCV 同樣建置了 Debug/Release 兩種版本,或統一使用 Release#include <opencv2/opencv.hpp>
using namespace cv;
int main() {
Mat img = imread("test.jpg");
if(img.empty()) return -1;
namedWindow("OpenCV in Qt", WINDOW_AUTOSIZE);
imshow("OpenCV in Qt", img);
waitKey(0);
return 0;
}
| 現象 | 原因與對策 |
|---|---|
| 連結錯誤:undefined reference | 庫路徑或庫名稱錯誤,檢查 LIBS 路徑與 -l 前綴 |
| 執行時報錯:缺少 *.dll | DLL 不在 PATH,加入環境變數或複製至 exe 同目錄 |
| Debug 模式崩潰 | OpenCV 未建置 Debug 版,專案改用 Release 或自行建置 Debug |
完成上述步驟,即可在 Qt 應用中無縫呼叫 OpenCV 強大的影像處理功能。