vs2015+opencv4.1.0+opencv4.1.0_contribute+环境配置
准备工具
Cmake
vs2015
opencv4.1
opencv4.1_contribute
首先下载opencv和opencv_contribute,在官网的GitHub上下载,链接为https://github.com/opencv/opencv/tree/4.1.0
下载opencv_contribute
准备Cmake
打开cmake.选择下载解压后的目录。
选择vs2015 14
点击configue后等待完成,期间一定保证有网络,网络太慢或者没网都会导致失败,期间需要下载一些依赖文件
第一次configue完成后在**NONFREE处打勾,把contribute-4.1/modules加载到MODULES_PATH路径下,**如果不这么作sift等一下nofree模块就无法使用,同样contribute模块也无法使用。
继续点击configure直到没有红色部分,一般需要点击2-3次,
红色部分消失后点击generate。
vs生成目录。
Cmake完成后,进行vs的生成目录。找到cmake的生成目录,用vs打开
在debug模式下生成解决方案
生成解决方案后
就此已完成debug模式的生成,同理换成release再生成一次。
VS环境配置
添加环境变量G:\Program Files (x86)\opencv\opencv4.1\vs-opencv4.1\install\x64\vc14\bin
在包含目录中添加路径
G:\Program Files (x86)\opencv\opencv4.1\vs-opencv4.1\install\include\opencv2
G:\Program Files (x86)\opencv\opencv4.1\vs-opencv4.1\install\include
在库目录中添加
G:\Program Files (x86)\opencv\opencv4.1\vs-opencv4.1\install\x64\vc14\lib
完成后添加lib文件
附加依赖项为:
opencv_aruco410d.lib
opencv_bgsegm410d.lib
opencv_bioinspired410d.lib
opencv_calib3d410d.lib
opencv_ccalib410d.lib
opencv_core410d.lib
opencv_datasets410d.lib
opencv_dnn410d.lib
opencv_dnn_objdetect410d.lib
opencv_dpm410d.lib
opencv_face410d.lib
opencv_features2d410d.lib
opencv_flann410d.lib
opencv_fuzzy410d.lib
opencv_hfs410d.lib
opencv_highgui410d.lib
opencv_imgcodecs410d.lib
opencv_imgproc410d.lib
opencv_img_hash410d.lib
opencv_line_descriptor410d.lib
opencv_ml410d.lib
opencv_objdetect410d.lib
opencv_optflow410d.lib
opencv_phase_unwrapping410d.lib
opencv_photo410d.lib
opencv_plot410d.lib
opencv_quality410d.lib
opencv_reg410d.lib
opencv_rgbd410d.lib
opencv_saliency410d.lib
opencv_shape410d.lib
opencv_stereo410d.lib
opencv_stitching410d.lib
opencv_structured_light410d.lib
opencv_superres410d.lib
opencv_surface_matching410d.lib
opencv_text410d.lib
opencv_tracking410d.lib
opencv_video410d.lib
opencv_videoio410d.lib
opencv_videostab410d.lib
opencv_xfeatures2d410d.lib
opencv_ximgproc410d.lib
opencv_xobjdetect410d.lib
opencv_xphoto410d.lib
using namespace cv;
using namespace std;
int main() {
Mat img = imread(“01.jpg”);//图片路径,可以是相对路径,也可以是绝对路径
cvtColor(img, img, COLOR_BGR2GRAY);
Ptr<Feature2D> sift = xfeatures2d::SIFT::create();
vector<KeyPoint> keypoints;
Mat descriptors;
sift<span class="token operator">-></span><span class="token function">detectAndCompute</span><span class="token punctuation">(</span>img<span class="token punctuation">,</span> <span class="token function">noArray</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">,</span> keypoints<span class="token punctuation">,</span> descriptors<span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">drawKeypoints</span><span class="token punctuation">(</span>img<span class="token punctuation">,</span> keypoints<span class="token punctuation">,</span> descriptors<span class="token punctuation">,</span> <span class="token function">Scalar</span><span class="token punctuation">(</span><span class="token number">0</span><span class="token punctuation">,</span> <span class="token number">255</span><span class="token punctuation">,</span> <span class="token number">255</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">imshow</span><span class="token punctuation">(</span><span class="token string">"Result"</span><span class="token punctuation">,</span> descriptors<span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">waitKey</span><span class="token punctuation">(</span><span class="token number">0</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token keyword">return</span> <span class="token number">0</span><span class="token punctuation">;</span>
}