1.安装CV环境
①参考书籍:学习OpenCV3(中文版)
github网站补充材料
解决github图片不能正常显示的问题
安装相应的版本
配置Visial Stuadio 的环境(头文件,映射等等要不然找不到opencv的库,慢慢来出错很正常)
API参考网站
②尝试编译出现了无法找到或者打开PDB文件的问题
解决方案:
所以我懒得管了,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
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";
}
运行成功就可以得到如下图所示的图像
当然我参考的源码引用文件都是用命令行的方式,这里就要通过 项目->[项目名称]属性->配置属性->调试里面的命令参数fruits.jpg添加命令行的方式进行文件的读取。此时fruits.jpg就是argv[1]。
// Example 2-2. Same as Example 2-1 but employing the “using namespace” directive
#include "opencv2/highgui/highgui.hpp"
#include
using namespace cv;
//解释文档
void help(char** argv) {
std::cout << "\n"
<< "2.2: Like 2.1, but 'using namespace cv: \n"
<< argv[0] << " \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工作流程,这是一种创建和查看代码的流行方法。
开始撸,先把官方的新手教程做一遍:
①.创建和使用存储库(repository)
这里特别注意最好搞一个READE.md的注解,方便别人读懂。
②.启动和管理新分支
②创建一个新的分支
③进行并提交更改
④拉取请求
拉取请求是GitHub上协作的核心。当您打开请求请求时,您是在提出更改,并要求某人查看并提取您的贡献并将其合并到其分支中。拉取请求显示两个分支中内容的差异或差异。更改,加法和减法以绿色和红色显示。提交后,即使在代码完成之前,也可以打开请求请求并开始讨论。
⑤合并您的拉取请求
在最后的步骤中,是时候将所有更改集中在一起了–将新建立的分支合并到master分支中。
⑥
最后,我建立的一个位于master下面的分支也就形成了(添加的cpp文件忘了加后缀名了,要把命名格式写清楚)