1. 程式人生 > >opencv 3.4.0+opencv_contrib+CMake+VS 2017+Win10

opencv 3.4.0+opencv_contrib+CMake+VS 2017+Win10

opencv 3.4.0+opencv_contrib+CMake+VS 2013+Win10

文章目錄

1.下載

opencv 3.4.0:https://sourceforge.net/projects/opencvlibrary/files/opencv-win/3.4.0/opencv-3.4.0-vc14_vc15.exe/download

opencv_contrib 3.4.0:

https://github.com/opencv/opencv_contrib/tree/3.4.0

CMake(.msi安裝包):https://cmake.org/download/

opencv3.4以上應該必須用VS2015以上才行,本人用2013頻頻報錯,用2017沒問題

2.編譯

①opencv 3.4.0解壓在無中文路徑下

②opencv_contrib解壓在opencv/sources/modules下
opencv_contrib解壓
③安裝CMake,安裝過程把新增Path到環境變數勾上

④執行CMake自行build opencv,注意CMake的路徑和資源管理器的路徑格式(斜槓)不同
CMake配置目錄
⑤點選Configure,根據VS版本和系統位數進行選擇
Configure配置

這一步配置過程可能出現很多問題,其中會訪問外網下載幾個檔案,網速慢或沒VPN的話則會報錯,不要擔心。

解決辦法如下:
根據報錯提示在資源管理器搜尋那檔案→百度下載該檔案→改成搜尋到的檔案同名覆蓋→重新Configure

第一次Configure呈紅色,再Configure一次變成白色就好

第一次Configure

⑥配置OPENCV_EXTRA_MODULES_PATH成opencv_contrib的modules資料夾後點Generate
Generate

⑦點Open Project或開啟newbuild中的OpenCV.sln
在這裡插入圖片描述

在這裡插入圖片描述

⑧右鍵解決方案→重新生成解決方案

重新生成解決方案

⑦右鍵INSTALL→僅用於專案→僅生成INSTALL
在這裡插入圖片描述

3.配置

①新建空專案
在這裡插入圖片描述

②開啟屬性管理器
在這裡插入圖片描述

③右鍵Debug | x64→Microsoft.Cpp.x64.user→屬性
在這裡插入圖片描述

④可執行目錄

\newbuild\install\x64\vc15\bin

在這裡插入圖片描述

⑤包含目錄

\newbuild\install\include
\newbuild\install\include\opencv
\newbuild\install\include\opencv2

在這裡插入圖片描述

⑥庫目錄

\newbuild\install\x64\vc15\lib

在這裡插入圖片描述

⑦附加依賴項

opencv_aruco340d.lib
opencv_bgsegm340d.lib
opencv_bioinspired340d.lib
opencv_calib3d340d.lib
opencv_ccalib340d.lib
opencv_core340d.lib
opencv_datasets340d.lib
opencv_dnn340d.lib
opencv_dpm340d.lib
opencv_face340d.lib
opencv_features2d340d.lib
opencv_flann340d.lib
opencv_fuzzy340d.lib
opencv_highgui340d.lib
opencv_img_hash340d.lib
opencv_imgcodecs340d.lib
opencv_imgproc340d.lib
opencv_line_descriptor340d.lib
opencv_ml340d.lib
opencv_objdetect340d.lib
opencv_optflow340d.lib
opencv_phase_unwrapping340d.lib
opencv_photo340d.lib
opencv_plot340d.lib
opencv_reg340d.lib
opencv_rgbd340d.lib
opencv_saliency340d.lib
opencv_shape340d.lib
opencv_stereo340d.lib
opencv_stitching340d.lib
opencv_structured_light340d.lib
opencv_superres340d.lib
opencv_surface_matching340d.lib
opencv_text340d.lib
opencv_tracking340d.lib
opencv_video340d.lib
opencv_videoio340d.lib
opencv_videostab340d.lib
opencv_xfeatures2d340d.lib
opencv_ximgproc340d.lib
opencv_xobjdetect340d.lib
opencv_xphoto340d.lib

在這裡插入圖片描述

⑧環境變數

\newbuild\install\x64\vc15\bin

在這裡插入圖片描述

PS:執行專案時要將Debug解決方案平臺調為x64(沒有的話就在配置管理器中新建)
在這裡插入圖片描述

4.測試

#include <stdio.h>
#include <iostream>
#include "opencv2/xfeatures2d.hpp"
#include "opencv2/highgui.hpp"

using namespace cv;
using namespace cv::xfeatures2d;
using namespace std;

int main()
{
	Mat img = imread("JUST SMASH.jpg");
	Mat gray = imread("JUST SMASH.jpg", IMREAD_GRAYSCALE);
	if (img.empty())
	{
		printf("could not load image...\n");
		return -1;
	}
	namedWindow("原圖", CV_WINDOW_AUTOSIZE);
	imshow("原圖", img);

	int minHessian = 400;
	Ptr<SURF> detector = SURF::create(minHessian);
	vector<KeyPoint> keypoints;
	detector->detect(gray, keypoints);

	Mat img_keypoints;
	drawKeypoints(gray, keypoints, img_keypoints, Scalar::all(-1), DrawMatchesFlags::DEFAULT);
	namedWindow("效果", CV_WINDOW_AUTOSIZE);
	imshow("效果", img_keypoints);

	waitKey(0);
	return 0;
}

在這裡插入圖片描述

5.參考

1.OpenCV學習筆記(六)——配置擴充套件模組 - 行歌 - CSDN部落格 https://blog.csdn.net/weixin_41695564/article/details/79925379#commentBox

2.OpenCV contrib 3.2.0擴充套件模組新增與編譯(VS2017+OpenCV3.2.0)詳解與排坑 - weixin_37800680的部落格 - CSDN部落格 https://blog.csdn.net/weixin_37800680/article/details/72566294