OpenCV-2.4.7.exe,雙擊執行安裝(實為自解壓縮),預設安裝至 D:\opencv,本文以 OPENCV 代稱安裝根目錄。OPENCV_DIR = %OPENCV%\build\x86\vc11x86 表 32 位元,vc11 對應 VS2012;64 位元專案請用 x64,但建議統一用 x86 避免連結器機型衝突)Path,附加 %OPENCV_DIR%\bin(記得以分號分隔)。
opencv_performance,若出現黑色視窗即成功。
$(OPENCV)\build\include$(OPENCV_DIR)\lib
設定 切 Debug,連結器 > 輸入 > 其他相依性 加入:
opencv_core247d.lib;opencv_imgproc247d.lib;opencv_highgui247d.lib;
opencv_ml247d.lib;opencv_video247d.lib;opencv_features2d247d.lib;
opencv_calib3d247d.lib;opencv_objdetect247d.lib;opencv_contrib247d.lib;
opencv_legacy247d.lib;opencv_flann247d.lib
命名規則:opencv_<模組><版本>d.lib(d 表 Debug)。
設定 切 Release,同樣位置加入無 d 後綴的 lib:
opencv_core247.lib;opencv_imgproc247.lib;opencv_highgui247.lib;
opencv_ml247.lib;opencv_video247.lib;opencv_features247.lib;
opencv_calib3d247.lib;opencv_objdetect247.lib;opencv_contrib247.lib;
opencv_legacy247.lib;opencv_flann247.lib
新增 hello.cpp:
#include <iostream>
#include <string>
#include <opencv2/opencv.hpp>
using namespace cv;
using namespace std;
int main() {
Mat img = imread("D:\\tmp.jpg");
if (img.empty()) {
cout << "Error: No image!" << endl;
return -1;
}
imshow("Lena", img);
waitKey();
return 0;
}
編譯執行(F5),若能顯示圖片視窗即環境就緒。
| 錯誤現象 | 原因 | 解決方法 |
|---|---|---|
LNK1112: 模組機器類型 'X86' 與目標 'x64' 衝突 |
專案目標平台為 x64,但連結 x86 lib | 專案屬性 > 連結器 > 進階 > 目標機器 設為 MachineX86;或將專案平台改為 x64 並使用 x64 lib |
fatal error: assert.h / highgui.h: No such file or directory |
包含目錄未正確設定 | 檢查 $(OPENCV)\build\include 是否在包含目錄中 |
找不到 opencv_core247d.dll |
執行時 DLL 不在 PATH | 確認 %OPENCV_DIR%\bin 已加入系統 Path 並重啟 |
關鍵在於:環境變數 OPENCV_DIR 指向 vc11/x86、專案統一針對 x86、Debug/Release 分別連結對應 lib。完成上述步驟即可順利進行 OpenCV 車牌識別後續開發。