在windows下利用Cmake和Visual Studio 对opencv及其扩展模块的编译,并新建ML机器学习(SVM)工程验证

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值