WIN10 & VisualStudio2019編譯和配置OpenCV2.4.4

先祝大家節日快樂😁


這裏的環境是Windows10、VisualStudio2019、OpenCV2.4.4。其它版本的VS也可以按照以下步驟設置,OpenCV3.X和4.X好像沒那麼麻煩,請參考其它博客。

下載OpenCV2.4.4源碼

1. 在github上找到opencv的項目:
https://github.com/opencv/opencv


2. 點release,找到已發佈的代碼:
在這裏插入圖片描述


3. 往下滑,一直"next",找到自己要的版本,點擊下載:
在這裏插入圖片描述


4. 解壓到某個目錄
我的是在這裏:D:\Programs\opencv-2.4.4\opencv-2.4.4
在這裏插入圖片描述



安裝CMake

1. 下載CMake
去CMake官網的download頁面(https://cmake.org/download/)下載對應平臺的版本,我的是windows64位。最好裝最新版本的CMake,不然可能不支持VisualStudio2019(VC16)。
在這裏插入圖片描述


2. 自己安裝



安裝VisualStudio2019

1. 默認已經你裝好了



編譯OpenCV

1.打開CMake,選擇OpenCV源碼路徑和編譯build路徑
D:\Programs\opencv-2.4.4\opencv-2.4.4是源碼的路徑
D:\Programs\opencv-2.4.4\opencv-2.4.4\build是我新建的
在這裏插入圖片描述


2.配置編譯版本
第一次點擊Configure後,會彈出一個界面,設置自己用的VisualStuido版本和目標平臺。這裏目標平臺關係到後面使用VisualStudio編譯時,“配置管理器”中選擇什麼“活動解決方案平臺”。我這裏選擇Win32。
在這裏插入圖片描述


3.生成OpenCV編譯項目
在上一步點擊Finish後,CMake就會開始配置了,配置完如下圖所示。
有很多紅色的提示,不管它,再點一次Configure。
在這裏插入圖片描述


沒問題了,Configuring done。
在這裏插入圖片描述


然後點旁邊的Generate按鈕,生成VS項目。
在這裏插入圖片描述


3.打開生成的OpenCV的項目
在CMake直接點擊Open Project按鈕,或者在D:\Programs\opencv-2.4.4\build目錄下找到項目打開。
方法1:
在這裏插入圖片描述
方法2:在這裏插入圖片描述


4.用VisualStudio編譯項目
(1)剛纔用CMake配置項目的時候選擇了Win32,所以這裏VisualStudio也要選擇Win32,x64的話請自行設置。
(2)在“解決方案管理器”中找到CMakeTargets,右鍵“ALL BUILD”,開始編譯。
在這裏插入圖片描述
很遺憾,編譯失敗了,一堆error
^_^
在這裏插入圖片描述
在這裏插入圖片描述


看錯誤提示,基本是由於找不到std::maxstd::min兩個函數,導致後面一系列錯誤。這個問題可以通過Baidu或者Google解決。我的做法是找到報錯的位置,在對應的cpp文件中加上#include<algorithm>。
修改後重新編譯,很好,成功。
在這裏插入圖片描述


然後右鍵INSTALL,點擊生成。
在這裏插入圖片描述


完成後,編譯出來的文件在D:\Programs\opencv-2.4.4\build\install路徑下。
在這裏插入圖片描述


新建一個文件夾,叫做OpenCV2.4.4_vc16_win32,把編譯好的文件拷過來,其它可以不要了。
在這裏插入圖片描述



配置OpenCV2.4.4環境

1.設置環境變量
設置動態鏈接庫的路徑,以便系統調用。
右鍵桌面的電腦圖標→屬性→高級系統設置→高級→環境變量→系統變量→Path→編輯→新建,加入編譯好的\bin目錄的路徑。沒有生效的話重啓一下系統。
在這裏插入圖片描述


1.配置VS工程
新建一個項目,在“屬性管理器”中對DebugWin32右鍵,添加新項目屬性表。
在這裏插入圖片描述


自己設一個名字和路徑:在這裏插入圖片描述


雙擊打開剛纔新建的屬性表。
加入OpenCV頭文件路徑:
在這裏插入圖片描述


設置OpenCV庫的路徑:
在這裏插入圖片描述


D:\Programs\opencv-2.4.4\OpenCV2.4.4_vc16_win32\lib路徑下所有.lib文件的名字寫到這裏來:
在這裏插入圖片描述



測試一下

從攝像頭讀取圖像然後顯示出來

#include <opencv\cv.h>
#include <opencv\highgui.h>

int main()
{

	CvCapture* input_video = cvCreateCameraCapture(0);
	IplImage* frame;
	while (true)
	{
		frame = cvQueryFrame(input_video);
		if (frame == NULL) {
			cout << "ERROR: NULL frame readed..." << endl;
			cvWaitKey(30);
			return -1;
		}
		cvShowImage("yemiekai", frame);
		cvWaitKey(30);
	}
	return 0;
}

在這裏插入圖片描述
還有bug請baidu、google解決。



參考:

《VisualStudio2010配置OpenCV的一種一勞永逸的方法》:
https://blog.csdn.net/bendanban/article/details/28661763

《vs2019編譯opencv》:
https://www.cnblogs.com/mangoroom/p/11000030.html

感謝所有寫blog的博主~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章