opencv及opencv_contrib源码下载
opencv 源码链接:
https://github.com/opencv/opencv
opencv_contrib 源码链接:
https://github.com/opencv/opencv_contrib
建议使用迅雷下载,两套源码迅雷下载链接如下:
https://codeload.github.com/opencv/opencv/zip/refs/heads/3.4
https://codeload.github.com/opencv/opencv_contrib/zip/refs/tags/3.4.0
下载后解压得到如下文件夹,其中新建build文件夹,用来存放编译结果:
Cmake编译工具下载链接:下载Cmake
进行如下配置,生成Visual studio2017 工程。
默认生成的是Visual studio2017 win32的工程!可根据自己的实际情况选择(本人电脑上有Visual studio2013 和Visual studio2017两套IDE),如果按照默认配置生成工程,后面在VS中编译不能选择X64平台,即使新建了X64的选项,也不能编译成功!
build文件夹下产生如下文件:
用Visual studio2017打开生成好的OpenCV Visual Studio 2017工程!右击ALL_BUILD,选择生成!(注意,留够至少16G的磁盘空间哦!)
生成的debug版本及release版本动态库:
提示下!
添加openCV工程运行平台,生成不同平台下的库文件,酱紫操作:
编译完成后, 右键 install->仅仅生产install
生成如下的install文件夹:
至此,opencv及opencv_contrib编译完成!接下来看看如何配置VS工程,使用open CV到自己的工程项目中!
首先新建VS工程
配置头文件目录,库文件目录以及库文件名称,注意!库文件名称在windows下要带后缀名称".lib"
配置库文件名称:
首先打开install文件夹,查看opencv debug版本的库文件名称:
opencv_aruco3416d.lib
opencv_bgsegm3416d.lib
opencv_bioinspired3416d.lib
opencv_calib3d3416d.lib
opencv_ccalib3416d.lib
opencv_core3416d.lib
opencv_datasets3416d.lib
opencv_dnn3416d.lib
opencv_dpm3416d.lib
opencv_features2d3416d.lib
opencv_flann3416d.lib
opencv_fuzzy3416d.lib
opencv_hdf3416d.lib
opencv_highgui3416d.lib
opencv_img_hash3416d.lib
opencv_imgcodecs3416d.lib
opencv_imgproc3416d.lib
opencv_line_descriptor3416d.lib
opencv_ml3416d.lib
opencv_objdetect3416d.lib
opencv_phase_unwrapping3416d.lib
opencv_photo3416d.lib
opencv_plot3416d.lib
opencv_reg3416d.lib
opencv_saliency3416d.lib
opencv_shape3416d.lib
opencv_stereo3416d.lib
opencv_structured_light3416d.lib
opencv_superres3416d.lib
opencv_surface_matching3416d.lib
opencv_text3416d.lib
opencv_video3416d.lib
opencv_videoio3416d.lib
opencv_videostab3416d.lib
opencv_ximgproc3416d.lib
opencv_xobjdetect3416d.lib
opencv_xphoto3416d.lib
进行如下配置:
右键我的电脑–>高级系统设置–>高级–>环境变量–>找到path–>新建–>填入build目录下:“…\install\x64\vc15\bin”
测试代码:
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace std;
using namespace cv;
int main()
{
char ad[128] = { 0 };
int filename = 0, filenum = 0;
Mat img = imread("E:\\opencv\\opencv-3.4\\samples\\data\\digits.png"); // 换成自己digits.png对应的目录
// imshow("hello",img);
// waitKey(0);
Mat gray;
cvtColor(img, gray, CV_BGR2GRAY);
int b = 20;
int m = gray.rows / b; //原图为1000*2000
int n = gray.cols / b; //裁剪为5000个20*20的小图块
for (int i = 0; i < m; i++)
{
int offsetRow = i * b; //行上的偏移量
if (i % 5 == 0 && i != 0)
{
filename++;
filenum = 0;
}
for (int j = 0; j < n; j++)
{
int offsetCol = j * b; //列上的偏移量
// cvSamplesDigits目录下手动新建0-9一共十个子文件夹,否则无法保存分割后的图片
sprintf_s(ad, "E:/opencv/cvSamplesDigits/%d/%d.jpg", filename, filenum++);
//截取20*20的小块
Mat tmp;
gray(Range(offsetRow, offsetRow + b), Range(offsetCol, offsetCol + b)).copyTo(tmp);
imwrite(ad, tmp);
}
}
cout << "seg success!\n" << endl;
return 0;
}
代码成功执行后,cvSamplesDigits目录下十个子文件夹中保存了对应的图片数据!
有了这些数据,就可以愉快的玩耍了!
未完待续…
资源下载:
链接:https://pan.baidu.com/s/1VbQJk2dHfKrYFKMvD9mlVA
提取码:lzkf
参考链接:https://www.cnblogs.com/procorosso/p/10305929.html