VS2017(X64)+OpenCV3.4.2+opencv_contrib3.4.2+cmake3.12.0安装过程
VS2017+OpenCV3.4.2+opencv_contrib3.4.2+cmake3.12.0
https://blog.****.net/luckyfairy17/article/details/81221220
照着上面博客做下去基本上没有问题了,但博客里面有几点要注意的事项和错误:
1.安装的过程中一定要找到vs、opencv、contrib对应的版本
2.如果电脑是32位需要在vs32位环境下编译,如果是64位需要在64位环境下编译。编译环境的确定是根据contrib生成的文件确定的,所以cmake中configure选项选择VS编译环境的时候一定要有VS 64位的选项,如果没有的话,选择其他版本的cmake。
3.电脑环境配置一定要有,重启
4.注意查看opencv/sources/.cache下文件是否出现文件大小为空的情况,解决办法:
CMake opencv时Download: opencv_ffmpeg.dll、ippicv等失败的解决方法
https://blog.****.net/KayChanGEEK/article/details/79919417
5.连接器——>输入——>附加依赖项添加库x64位的依赖项位(加d表示64位,不加表示32位,具体的可以查看install/x64/v15/bin):
opencv_aruco342d.lib
opencv_bgsegm342d.lib
opencv_bioinspired342d.lib
opencv_calib3d342d.lib
opencv_ccalib342d.lib
opencv_core342d.lib
opencv_datasets342d.lib
opencv_dnn342d.lib
opencv_dnn_objdetect342d.lib
opencv_dpm342d.lib
opencv_face342d.lib
opencv_features2d342d.lib
opencv_flann342d.lib
opencv_fuzzy342d.lib
opencv_hfs342d.lib
opencv_highgui342d.lib
opencv_imgcodecs342d.lib
opencv_imgproc342d.lib
opencv_img_hash342d.lib
opencv_line_descriptor342d.lib
opencv_ml342d.lib
opencv_objdetect342d.lib
opencv_optflow342d.lib
opencv_phase_unwrapping342d.lib
opencv_photo342d.lib
opencv_plot342d.lib
opencv_reg342d.lib
opencv_rgbd342d.lib
opencv_saliency342d.lib
opencv_shape342d.lib
opencv_stereo342d.lib
opencv_stitching342d.lib
opencv_structured_light342d.lib
opencv_superres342d.lib
opencv_surface_matching342d.lib
opencv_text342d.lib
opencv_tracking342d.lib
opencv_video342d.lib
opencv_videoio342d.lib
opencv_videostab342d.lib
opencv_xfeatures2d342d.lib
opencv_ximgproc342d.lib
opencv_xobjdetect342d.lib
opencv_xphoto342d.lib
测试用例:
#include <iostream>
#include <opencv2/opencv.hpp> //头文件
#include <opencv2/xfeatures2d.hpp>
using namespace cv; //包含cv命名空间
using namespace std;
int main()
{
//Create SIFT class pointer
Ptr<Feature2D> f2d = xfeatures2d::SIFT::create();
//读入图片
Mat img_1 = imread("1.jpg");
Mat img_2 = imread("2.jpg");
//Detect the keypoints
vector<KeyPoint> keypoints_1, keypoints_2;
f2d->detect(img_1, keypoints_1);
f2d->detect(img_2, keypoints_2);
//Calculate descriptors (feature vectors)
Mat descriptors_1, descriptors_2;
f2d->compute(img_1, keypoints_1, descriptors_1);
f2d->compute(img_2, keypoints_2, descriptors_2);
//Matching descriptor vector using BFMatcher
BFMatcher matcher;
vector<DMatch> matches;
matcher.match(descriptors_1, descriptors_2, matches);
//绘制匹配出的关键点
Mat img_matches;
drawMatches(img_1, keypoints_1, img_2, keypoints_2, matches, img_matches);
imshow("【match图】", img_matches);
//等待任意按键按下
waitKey(0);
}
尝试了一整天,遇到的一些问题都解决了,菜鸟之路还很远,,,望努力,有所得。
最后附上结果: