一般出现找不到.lib库文件都是环境变量配置没弄好或者是依赖项或包含库没设置好,下面是我的步骤,大家可以参考以下(大家一定要注意环境变量哪里的bin别弄成lib,2天不断重装的血泪教训)
1.CMake的下载
下载链接: https://cmake.org/download/.
CMake的下载,这里我觉得版本越新越好
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190525144212766.JPG?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM0MjQ2Nzc4,size_16,color_FFFFFF,t_70)
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190525145109428.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM0MjQ2Nzc4,size_16,color_FFFFFF,t_70)
这里需要勾选创建桌面图标,不创建的话可以自己去自己定义的安装目录找。
安装过程都是常规操作;这里就不讲解了。
2.opencv_contrib3.4.1下载安装
这里的opencv_contrib3.4.1一定要对应自己安装的opencv版本,我的是opencv3.4.1版本
下载链接: https://github.com/opencv/opencv_contrib/releases.
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190525145556232.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM0MjQ2Nzc4,size_16,color_FFFFFF,t_70)
3.Cmake的编译
打开下载好的Cmake软件
在opencv3.4.1目录中新建tools文件夹(用于存放Cmake之后的拓展包)
分别指定opencv3.4.1的sources的文件夹目录和存放的tools目录
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190525150207998.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM0MjQ2Nzc4,size_16,color_FFFFFF,t_70)
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190525150602416.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM0MjQ2Nzc4,size_16,color_FFFFFF,t_70)
点击configue
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190525150646199.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM0MjQ2Nzc4,size_16,color_FFFFFF,t_70)
点finish后需要等很长一段时间。
![在这里插入图片描述](https://img-blog.csdnimg.cn/2019052515185023.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM0MjQ2Nzc4,size_16,color_FFFFFF,t_70)
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190525151928450.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM0MjQ2Nzc4,size_16,color_FFFFFF,t_70)
然后找到OPENCV_EXTRA_MODULES_RATH一项,添加你刚刚解压的contrib3.4.1中的modules目录,
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190525152742175.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM0MjQ2Nzc4,size_16,color_FFFFFF,t_70)
最后选择generate开始编译。
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190525153005543.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM0MjQ2Nzc4,size_16,color_FFFFFF,t_70)
完成之后如果在你自定义的输出文件夹中找到“OpenCV.sln”文件,即表明编译成功。
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190525153026548.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM0MjQ2Nzc4,size_16,color_FFFFFF,t_70)
点击open project;
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190525153052175.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM0MjQ2Nzc4,size_16,color_FFFFFF,t_70)
如图所示点击“生成—>生成解决方案(F6)”,需要等很长一段时间。
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190525155431119.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM0MjQ2Nzc4,size_16,color_FFFFFF,t_70)
点击INSTALL安装库文件
解决方案资源管理器—>CMakeTargets—>INSTALL—>仅用于项目—>仅生成INSTALL”
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190525155645488.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM0MjQ2Nzc4,size_16,color_FFFFFF,t_70)
最后我们找到多出来的install文件夹
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190525155732550.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM0MjQ2Nzc4,size_16,color_FFFFFF,t_70)
进到里面去可以找到我们用的库(在x64->VC15->lib)这里的VC15对应的意思是VS2017。
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190525155925786.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM0MjQ2Nzc4,size_16,color_FFFFFF,t_70)
3.配置环境变量
电脑->属性->高级系统设置
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190525160109248.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM0MjQ2Nzc4,size_16,color_FFFFFF,t_70)
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190525160410141.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM0MjQ2Nzc4,size_16,color_FFFFFF,t_70)
之后把install的lib文件添加进去
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190525164157342.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM0MjQ2Nzc4,size_16,color_FFFFFF,t_70)
4.新建一个测试代码
#include <opencv2/opencv.hpp>
#include <opencv2/xfeatures2d.hpp>
#include
using namespace cv;
using namespace cv::xfeatures2d;
using namespace std;
int main(int argc, char** argv) {
Mat src = imread(“D:/image2/43.jpg”, IMREAD_GRAYSCALE);
if (src.empty()) {
printf(“could not load image…\n”);
return -1;
}
namedWindow(“input image”, CV_WINDOW_AUTOSIZE);
imshow(“input image”, src);
// SURF特征检测
int minHessian = 100;
Ptr<SURF> detector = SURF::create(minHessian);
vector<KeyPoint> keypoints;
detector->detect(src, keypoints, Mat());
// 绘制关键点
Mat keypoint_img;
drawKeypoints(src, keypoints, keypoint_img, Scalar::all(-1), DrawMatchesFlags::DEFAULT);
imshow("KeyPoints Image", keypoint_img);
waitKey(0);
return 0;
}
包含目录、库目录
视图——其他窗口——属性管理器
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190525160934387.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM0MjQ2Nzc4,size_16,color_FFFFFF,t_70)
这里就多出了个窗口。
Debug|x64—— 右键——属性
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190525161047776.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM0MjQ2Nzc4,size_16,color_FFFFFF,t_70)
在包含目录跟库目录这里面分别添加路径(注意是添加install里面的)
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190525161257712.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM0MjQ2Nzc4,size_16,color_FFFFFF,t_70)
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190525161510437.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM0MjQ2Nzc4,size_16,color_FFFFFF,t_70)
这里如果代码不成功,可以去修改环境变量、包含目录、库目录、以及依赖项。修改环境变量记得重启电脑,否则不起作用。
附加依赖项(如果这里复制不了,可以去这个地址)
opencv_aruco341d.lib
opencv_bgsegm341d.lib
opencv_bioinspired341d.lib
opencv_calib3d341d.lib
opencv_ccalib341d.lib
opencv_core341d.lib
opencv_datasets341d.lib
opencv_dnn341d.lib
opencv_dnn_objdetect341d.lib
opencv_dpm341d.lib
opencv_face341d.lib
opencv_features2d341d.lib
opencv_flann341d.lib
opencv_fuzzy341d.lib
opencv_hfs341d.lib
opencv_highgui341d.lib
opencv_imgcodecs341d.lib
opencv_imgproc341d.lib
opencv_img_hash341d.lib
opencv_line_descriptor341d.lib
opencv_ml341d.lib
opencv_objdetect341d.lib
opencv_optflow341d.lib
opencv_phase_unwrapping341d.lib
opencv_photo341d.lib
opencv_plot341d.lib
opencv_reg341d.lib
opencv_rgbd341d.lib
opencv_saliency341d.lib
opencv_shape341d.lib
opencv_stereo341d.lib
opencv_stitching341d.lib
opencv_structured_light341d.lib
opencv_superres341d.lib
opencv_surface_matching341d.lib
opencv_text341d.lib
opencv_tracking341d.lib
opencv_video341d.lib
opencv_videoio341d.lib
opencv_videostab341d.lib
opencv_xfeatures2d341d.lib
opencv_ximgproc341d.lib
opencv_xobjdetect341d.lib
opencv_xphoto341d.lib
代码演示
#include <opencv2/opencv.hpp>
#include <opencv2/xfeatures2d.hpp>
#include <iostream>
using namespace cv;
using namespace cv::xfeatures2d;
using namespace std;
int main(int argc, char** argv) {
Mat src = imread("D:/image2/43.jpg", IMREAD_GRAYSCALE);
if (src.empty()) {
printf("could not load image...\n");
return -1;
}
namedWindow("input image", CV_WINDOW_AUTOSIZE);
imshow("input image", src);
// SURF特征检测
int minHessian = 100;
Ptr<SURF> detector = SURF::create(minHessian);
vector<KeyPoint> keypoints;
detector->detect(src, keypoints, Mat());
// 绘制关键点
Mat keypoint_img;
drawKeypoints(src, keypoints, keypoint_img, Scalar::all(-1), DrawMatchesFlags::DEFAULT);
imshow("KeyPoints Image", keypoint_img);
waitKey(0);
return 0;
}
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190525164417734.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM0MjQ2Nzc4,size_16,color_FFFFFF,t_70)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)