給自己做的筆記
環境:win7 64bit, vs2013, opencv2.4.7
1. 官網下載opencv : http://opencv.org/
2.解壓exe到你想要放的文件夾(可以任意設定,如直接解壓在D盤,這裏,我用XX來表示解壓的路徑。即如果解壓在D盤,XX表示 D:)
3.更改系統環境變量: 計算機---右鍵---屬性---高級系統設置---環境變量---(這裏可以改 用戶變量 也可以改 系統變量 )
3.1. 改用戶變量: 新建---變量名填 Path --- 變量值填 XX\opencv\build\x64\vc11\bin; (XX表示opencv解壓的路徑,如果在D盤,即 D:\opencv\build\x64\vc11\bin; )
3.2. 改系統變量:在變量那裏找到 Path,然後 點“編輯“,在末尾添加 XX\opencv\build\x64\vc11\bin;
4.配置VS
4.1. 新建項目,選 Win32控制檯應用程序,然後下一步。
4.2. 選 空項目 ! 然後點完成。
4.3. 配置管理器,點擊Win32,如圖,選擇配置管理器。
4.4. 在”配置管理器“裏面的”活動解決方案平臺“下選擇”新建“。 選擇新平臺,選"X64",確定。
4.5. 這時,在”屬性管理器” 裏面多了兩個“x64”的條目。 右鍵 “Debug|x64",點”添加新屬性表“,可以命名爲”opencv_247_x64_debug“。右鍵新建的屬性表,選擇”屬性“。
4.6. 在”VC++目錄“的”包含目錄“添加下面三項,記得替換XX成爲解壓opencv的目錄!
XX\opencv\build\include;
XX\opencv\build\include\opencv;
XX\opencv\build\include\opencv2;
4.7.在”庫目錄“添加
XX\opencv\build\x64\vc11\lib;
4.8. 在”鏈接器“的”輸入“的”附加依賴項“裏面添加:
opencv_calib3d247d.lib
opencv_contrib247d.lib
opencv_core247d.lib
opencv_features2d247d.lib
opencv_flann247d.lib
opencv_gpu247d.lib
opencv_highgui247d.lib
opencv_imgproc247d.lib
opencv_legacy247d.lib
opencv_ml247d.lib
opencv_nonfree247d.lib
opencv_objdetect247d.lib
opencv_photo247d.lib
opencv_stitching247d.lib
opencv_ts247d.lib
opencv_video247d.lib
opencv_videostab247d.lib
opencv_ocl247d.lib
opencv_superres247d.lib
4.9. 以同樣的辦法配置”Release|x64“。 右鍵,”新建項目屬性表“,命名爲”opencv_247_x64_release“。右鍵它,選”屬性“。
4.10. ”VC++目錄“的”包含目錄“和”庫目錄“配置和debug的一樣。
4.11. 然後,在”鏈接器“的”輸入“的”附加依賴項“裏面添加:
opencv_ocl247.lib
opencv_superres247.lib
opencv_calib3d247.lib
opencv_contrib247.lib
opencv_core247.lib
opencv_features2d247.lib
opencv_flann247.lib
opencv_gpu247.lib
opencv_highgui247.lib
opencv_imgproc247.lib
opencv_legacy247.lib
opencv_ml247.lib
opencv_nonfree247.lib
opencv_objdetect247.lib
opencv_photo247.lib
opencv_stitching247.lib
opencv_ts247.lib
opencv_video247.lib
opencv_videostab247.lib
這樣就配置成功了!
下次新建項目的時候,只需要把這兩個屬性表添加到新的目錄中就可以使用了。
下面,放一張lena.jpg到項目文件夾裏面,用下面的代碼,測試一下能不能用吧!
#include <iostream>
#include <opencv2/opencv.hpp>
using namespace std;
using namespace cv;
int main()
{
const char* imagename = "lena.jpg";
Mat img = imread(imagename);
if (img.empty())
{
fprintf(stderr, "Can not load image %s\n", imagename);
return -1;
}
imshow("image", img);
waitKey();
return 0;
}
ps:
1. 如果要配置32bit的話,就可以直接用Win32,不需要x64那步了。
2. 32bit就配置X86的。。這個不說了。。。
3. 如果配置不同版本的OpenCV,只需要改一下附加依賴項的數字,247就代表OpenCV 2.4.7版本。不過”附加依賴項“裏面具體有什麼可能各個版本有點不一樣,所以主要是找一下opencv的文件夾裏面的 XX \opencv\build\x64\vc11\lib文件夾裏面有什麼。
4. 如果出現缺少”msvcp100d.dll“、”msvcp110d.dll“等。那麼你是否是在沒有安裝更低版本的vs就直接裝了vs2013,如果是那樣的話就是缺少了vs2012的包。因爲opencv 的vc11是對應vs2012的,vc10好像是對應2010。 現在有幾個解決辦法:(1)安裝上vs2012;(2)安裝vs2012的distributed package,沒試過,不知道行不行。(3)在s2013上重新編譯opencv,沒試過。