1.安装CV环境

①参考书籍:学习OpenCV3(中文版)

github网站补充材料解决github图片不能正常显示的问题

安装相应的版本

配置Visial Stuadio 的环境(头文件,映射等等要不然找不到opencv的库,慢慢来出错很正常)

API参考网站

②尝试编译出现了无法找到或者打开PDB文件的问题

opencv pom maven 图 白色 opencv mat step_opencv


解决方案:

opencv pom maven 图 白色 opencv mat step_github_02


所以我懒得管了,contrl+f5直接运行,如果之后要调试再看具体的解决方案。

2-2显示图像

//Example 2-1. A simple OpenCV program that loads an image from disk and displays it
//on the screen
// Example 2-2. Same as Example 2-1 but employing the “using namespace” directive

#include "opencv2/highgui/highgui.hpp"
#include <iostream>
using namespace cv; 
int main()
{

	// imread读取一张图片, 创建一个Mat的图片对象,把读取到的图片赋值给Mat
	Mat src = imread("E:/Projects/Opecv/images/2.jpg");//这里的斜杠是从右向左斜,不要跟转义字符搞混了
	if (src.empty()) 
	{
		printf("图片资源不存在");
		return -1;
	}

	// 创建一个窗口,CV_WINDOW_AUTOSIZE 是窗口自动大小
	namedWindow("2-2 opencv setup", CV_WINDOW_AUTOSIZE);

	// 把创建的图片对象显示在窗口上

	// @param "2-2 opencv setup" 是窗口名称,跟上面创建的窗体要一一对应
	// @param src 就是上面创建的图片对象
	imshow("2-2 opencv setup", src);
	waitKey(0);

	std::cout << "Hello World!\n";
}

运行成功就可以得到如下图所示的图像

opencv pom maven 图 白色 opencv mat step_opencv_03

当然我参考的源码引用文件都是用命令行的方式,这里就要通过 项目->[项目名称]属性->配置属性->调试里面的命令参数fruits.jpg添加命令行的方式进行文件的读取。此时fruits.jpg就是argv[1]。

opencv pom maven 图 白色 opencv mat step_opencv_04


所以可以使用到的代码块:

// Example 2-2. Same as Example 2-1 but employing the “using namespace” directive

#include "opencv2/highgui/highgui.hpp"
#include <iostream>

using namespace cv;
//解释文档

void help(char** argv) {
	std::cout << "\n"
		<< "2.2: Like 2.1, but 'using namespace cv: \n"
		<< argv[0] << " <path/image>\n"
		<< "For example:\n"
		<< argv[0] << " ../fruits.jpg\n"
		<< std::endl;
}

int main(int argc, char** argv) {

	if (argc != 2) {
		help(argv);
		return 0;
	}

	Mat img = imread(argv[1], -1);//创建一个mat对象;

	if (img.empty()) return -1;//如果没有读到图像就返回-1;

	namedWindow("Example 2-2", cv::WINDOW_AUTOSIZE);

	imshow("Example 2-2", img);

	waitKey(0);

	destroyWindow("Example 2-2");
}

branches:大二狗没基础过github,对git之前也没了解过。(加上英语一般进去看到那些分支脑袋都大了)
鉴于源码都是在github进行开源的,也考虑到后面实际也要用到,所以这里就先插一下研究下github的运用。

为什么要用:GitHub是用于版本控制和协作的代码托管平台。它使您和其他人可以在任何地方共同处理项目。学习例如存储库,分支,提交和请求请求。您将创建自己的Hello World存储库,并学习GitHub的Pull Request工作流程,这是一种创建和查看代码的流行方法。


开始撸,先把官方的新手教程做一遍:

opencv pom maven 图 白色 opencv mat step_#include_05


①.创建和使用存储库(repository)

opencv pom maven 图 白色 opencv mat step_ios_06


opencv pom maven 图 白色 opencv mat step_#include_07


这里特别注意最好搞一个READE.md的注解,方便别人读懂。

②.启动和管理新分支

opencv pom maven 图 白色 opencv mat step_#include_08


opencv pom maven 图 白色 opencv mat step_#include_09


②创建一个新的分支

opencv pom maven 图 白色 opencv mat step_opencv_10


③进行并提交更改

opencv pom maven 图 白色 opencv mat step_#include_11


④拉取请求

拉取请求是GitHub上协作的核心。当您打开请求请求时,您是在提出更改,并要求某人查看并提取您的贡献并将其合并到其分支中。拉取请求显示两个分支中内容的差异或差异。更改,加法和减法以绿色和红色显示。提交后,即使在代码完成之前,也可以打开请求请求并开始讨论。

opencv pom maven 图 白色 opencv mat step_ios_12


opencv pom maven 图 白色 opencv mat step_ios_13

⑤合并您的拉取请求

在最后的步骤中,是时候将所有更改集中在一起了–将新建立的分支合并到master分支中。

opencv pom maven 图 白色 opencv mat step_#include_14



opencv pom maven 图 白色 opencv mat step_opencv_15


最后,我建立的一个位于master下面的分支也就形成了(添加的cpp文件忘了加后缀名了,要把命名格式写清楚)

opencv pom maven 图 白色 opencv mat step_github_16


最后学习一下别人的源码存放的一般格式

opencv pom maven 图 白色 opencv mat step_#include_17