<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[aazqy1234的博客]]></title><description><![CDATA[]]></description><link>https://blog.csdn.net/aazqy1234</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; aazqy1234]]></copyright><item><title><![CDATA[C++的引用]]></title><link>https://blog.csdn.net/aazqy1234/article/details/108181214</link><guid>https://blog.csdn.net/aazqy1234/article/details/108181214</guid><author>aazqy1234</author><pubDate>Sun, 23 Aug 2020 12:30:02 +0800</pubDate><description><![CDATA[本文参考：
https://www.cnblogs.com/ronny/p/3662556.html
定义：
引用就是一个对象的别名
引用不是值不占内存空间
引用必须在定义时赋值，将变量与引用绑定
本质：
引用实质上是通过指针实现的
引用是一个常量指针
引用在内存中占4个字节
在对引用定义时，需要对这个常量指针初始化
汇编层面分析：
我们从最简单的变量的定义开始，看编译器会做哪些事情。
int var = 42;
mov    dword ptr [var],2Ah  // 对应汇编代码

上面语句申请了一]]></description><category></category></item><item><title><![CDATA[序列类型的打包和解包]]></title><link>https://blog.csdn.net/aazqy1234/article/details/108038565</link><guid>https://blog.csdn.net/aazqy1234/article/details/108038565</guid><author>aazqy1234</author><pubDate>Sun, 16 Aug 2020 17:04:29 +0800</pubDate><description><![CDATA[打包：
Python提供了另外两个涉及元组和其他序列类型的处理的便利。第一个便利是相当明显的。如果在大的上下文中给出了一系列逗号分割的表达式，它们将被视为一个独立的元组，即使没有提供封闭的圆括号。
例如：data = 2,4,6,8 会被标识符赋值成元组(2,4,6,8)，这种行为被称为元组的自动打包。
在Python中，另一种常用的打包是从一个函数中返回多个值。
return x,y 就自动返回单个对象，也就是元组。
解包：
a,b,c,d = range(7,11)
对于这个语法，右边的表达式可以是任何]]></description><category></category></item><item><title><![CDATA[python的解析语法]]></title><link>https://blog.csdn.net/aazqy1234/article/details/108038364</link><guid>https://blog.csdn.net/aazqy1234/article/details/108038364</guid><author>aazqy1234</author><pubDate>Sun, 16 Aug 2020 16:50:38 +0800</pubDate><description><![CDATA[一个很常见的变成任务是基于另一个序列的处理来产生一系列的值。通常，这个任务在Python中使用所谓的解析语法后实现很简单。
一般形式如下：
[expression for value in iterable if condition]
if子句是可选的。解析计算与下面的传统控制结构计算结果列表在逻辑上是等价的。
result = []
for value in iterable
	if condtion:
		result.append(expression)

Python支持类似的集、生成器或字典的解析]]></description><category></category></item><item><title><![CDATA[基于QT，C++和opencv 的人脸识别项目（五）]]></title><link>https://blog.csdn.net/aazqy1234/article/details/108025392</link><guid>https://blog.csdn.net/aazqy1234/article/details/108025392</guid><author>aazqy1234</author><pubDate>Sat, 15 Aug 2020 18:04:48 +0800</pubDate><description><![CDATA[0.目录1.引言2.环境3.代码部分pro部分人脸检测代码人脸采集部分人脸识别部分
1.引言
这是本项目的第五篇文章，主要介绍相关的代码。
第一篇文章，主要介绍项目的任务和实验环境，点击阅读
第二篇文章，主要介绍opencv和相关模型，点击阅读。
第三篇文章，主要介绍人脸检测haar+adaboost的原理，点击阅读。
第四篇文章，主要介绍PCA降维和人脸识别的原理，点击阅读。
2.环境
本文的代码主要的IDE是qtcreator，主要语言是C++。
因为把代码全部贴出来极不方便阅读，篇幅也会过于冗长，我把]]></description><category></category></item><item><title><![CDATA[基于QT，C++和opencv 的人脸识别项目（四）]]></title><link>https://blog.csdn.net/aazqy1234/article/details/108024597</link><guid>https://blog.csdn.net/aazqy1234/article/details/108024597</guid><author>aazqy1234</author><pubDate>Sat, 15 Aug 2020 18:04:39 +0800</pubDate><description><![CDATA[目录1.引言2.正文人脸识别原理PCA特征脸算法Eigenface3.总结
1.引言
本篇文章是上一篇原理介绍文章的延续，是这个项目的第四篇文章
第一篇文章，主要介绍项目的任务和实验环境，点击阅读
第二篇文章，主要介绍opencv和相关模型，点击阅读。
第三篇文章，主要介绍人脸检测haar+adaboost的原理，点击阅读。
第五篇文章，主要给出相关的代码，点击阅读。
2.正文
人脸识别原理
PCA
在这里分享一篇解释PCA主成分分析的博文。PCA原理
其中中心的一句话就是：PCA能做的事情其实很有限，那就]]></description><category></category></item><item><title><![CDATA[基于QT，C++和opencv 的人脸识别项目（三）]]></title><link>https://blog.csdn.net/aazqy1234/article/details/107694985</link><guid>https://blog.csdn.net/aazqy1234/article/details/107694985</guid><author>aazqy1234</author><pubDate>Sat, 15 Aug 2020 18:04:22 +0800</pubDate><description><![CDATA[1.引言
本篇文章是人脸检测的原理及实现的介绍，以及一些qt界面的编写。
2.正文
人脸检测的原理
首先说一下，现在好多博客都没弄懂什么是人脸识别什么是人脸检测，每次都点进去一个人脸识别的项目，结果就是一个简简单单的人脸检测。
人脸检测就是简单的在视频、摄像头或者图片中用框框标出人脸的位置，没有其他多余的标注，但是对于人脸识别，首先需要录入自己的人脸，再训练出模型，通过模型对视频、摄像头或者图片中的人进行检测+标注出名字等相关的信息。
打个简单的比方，人脸检测就是一条狗能做的：这里是个人脸，叫几声吓吓他。人]]></description><category></category></item><item><title><![CDATA[基于QT，C++和opencv 的人脸识别项目（二）]]></title><link>https://blog.csdn.net/aazqy1234/article/details/107706231</link><guid>https://blog.csdn.net/aazqy1234/article/details/107706231</guid><author>aazqy1234</author><pubDate>Sat, 15 Aug 2020 18:04:08 +0800</pubDate><description><![CDATA[引言
工欲善其事，必先利其器。我们先了解可能用到的相关知识。主要包含：opencv，dlib，相关模型。
正文
opencv
本实验主要是基于opencv实现的，了解opencv也就是重中之重了。学习opencv最好的地方当然是opencv官网，当然囿于英语阅读的速度和方便性，我们也会考虑中文读物。我把有关项目的重要信息摘要给大家。

OpenCV要求电脑中有如下packages
GCC（GCC是linux最常用的C/C++编译器，通常以gcc命令的形式在终端shell中使用），GCC教程
Cmake（对于]]></description><category></category></item><item><title><![CDATA[基于QT，C++和opencv 的人脸识别项目（一）]]></title><link>https://blog.csdn.net/aazqy1234/article/details/107674463</link><guid>https://blog.csdn.net/aazqy1234/article/details/107674463</guid><author>aazqy1234</author><pubDate>Sat, 15 Aug 2020 18:03:47 +0800</pubDate><description><![CDATA[1.引言
近期按照师傅的要求做了一个基于opencv实现的人脸检测和人脸识别的项目，并且用QT做了一个界面。
由于长时间没有用C++，也是第一次接触opencv和qt，做起来有点慢，但也因此遇到的问题比较多，写下一篇文章作为项目的总结。
因为涉及的原理及代码较多，我把本次项目分为多篇文章来介绍，在之后我会添加到github上。
2.实验环境
本项目主要是基于ubuntu - linux系统，所以介绍的相关的环境配置会大部分基于linux，我也尽可能把windows上的操作也加以介绍。
本文的电脑配置为：
c]]></description><category></category></item><item><title><![CDATA[python的迭代器和生成器]]></title><link>https://blog.csdn.net/aazqy1234/article/details/108005916</link><guid>https://blog.csdn.net/aazqy1234/article/details/108005916</guid><author>aazqy1234</author><pubDate>Fri, 14 Aug 2020 15:58:57 +0800</pubDate><description><![CDATA[迭代器
Python中有许多类型的对象可以被定义为可迭代的。基本的容器类型，如列表、元组和集合，都可以定义为迭代类型。
字符串可以产生它的字符的迭代，字典可以生成它的键的迭代，文件可以产生它的行的迭代。
迭代器是一个对象，通过一些列的值来管理迭代。如果变量i定义为一个迭代器对象，接下来每次调用内置函数next(i)，都会从当前序列中产生一个后续的元素。
对象obj是可迭代的，那么通过语法iter(obj)可以产生一个迭代器。
通过上述的定义，list的实例是可迭代的，但它本身不是一个迭代器。
python还]]></description><category></category></item><item><title><![CDATA[python控制台输入和输出]]></title><link>https://blog.csdn.net/aazqy1234/article/details/108005396</link><guid>https://blog.csdn.net/aazqy1234/article/details/108005396</guid><author>aazqy1234</author><pubDate>Fri, 14 Aug 2020 15:33:43 +0800</pubDate><description><![CDATA[print函数
print函数自定义
默认情况下，print函数在输出时会在每对参数间插入空格作为分隔，其实可以通过关键字参数sep自定义想要的分隔符以分隔字符串。
print(a,b,c,sep=’:’)
print(a,b,c,sep=’ ‘)
默认情况下，在最后一个参数后会输出换行符，使用关键字参数end可以制定一个可选择的结尾字符串。
print(a,b,c,sep=’:’,end=’’)
input函数
input是一个内置函数。
year = int(input(‘sdadadas’))
利用s]]></description><category></category></item><item><title><![CDATA[Python对象以及运算符]]></title><link>https://blog.csdn.net/aazqy1234/article/details/108001308</link><guid>https://blog.csdn.net/aazqy1234/article/details/108001308</guid><author>aazqy1234</author><pubDate>Fri, 14 Aug 2020 15:17:02 +0800</pubDate><description><![CDATA[python是一种面向对象的语言，类则是所有数据类型的基础。
标识符、对象和赋值语句
在Python语言的所有语句中，最重要的就是赋值语句。
temperature = 98.6
temperature作为标识符，与右边的对象相关联。

可以通过向现有对象指定第二个标识符建立一个别名
original = temperature

一旦建立了别名，两个名称都可以用来访问底层对象。
创建和使用对象
创建一个类的新实例的过程被称为实例化。例如我们可以用w=Widget()这样的语句来创建这个类的实例。
许多py]]></description><category></category></item><item><title><![CDATA[python解释器是什么？]]></title><link>https://blog.csdn.net/aazqy1234/article/details/108000021</link><guid>https://blog.csdn.net/aazqy1234/article/details/108000021</guid><author>aazqy1234</author><pubDate>Fri, 14 Aug 2020 11:22:55 +0800</pubDate><description><![CDATA[解释器
对于电脑的CPU，虽然功能强大，但是仍然不能处理Python语言，只能处理机器指令语言。所以需要一个翻译，把我们所用的语言翻译成CPU能执行的代码。
其实我们安装JAVA也好，C也好，Python也罢，主要就是安装的这个编程语言的“编译器”。
编译器/解释器：高级语言与机器之间的翻译官

python解释器
Python语法简单明了，贴近人类的使用习惯。作为一种动态解释性语言，让人们在写代码的时候可以更多的关注业务逻辑细节，而不需要花太多精力去关注数据类型定义、程序运行效率等！
当我们编写Pytho]]></description><category></category></item><item><title><![CDATA[PCL点云库简要说明]]></title><link>https://blog.csdn.net/aazqy1234/article/details/107798666</link><guid>https://blog.csdn.net/aazqy1234/article/details/107798666</guid><author>aazqy1234</author><pubDate>Wed, 12 Aug 2020 09:43:39 +0800</pubDate><description><![CDATA[概述
PCL库是一个大规模的开源点云处理库。PCL框架包括大量的最新算法，如：滤波，特征估计，表面重建，配准，模型适配和分割。这些算法有很多应用，例如：从噪声数据中提取出离群值，3D点云缝合，分割一个背景的相关部位，提取关键点和计算出根据几何外形识别物体的描述符，点云的表面重建和可视化。
PCL遵循BSD license，是一个开源软件，商用和研究都是免费的。

PCL是一个跨平台并且在Linuxm, MacOS, Windows和Android中都可以顺利的编译和部署。为了方便改进，PCL被分为一系列的小]]></description><category></category></item><item><title><![CDATA[再谈OpenCV中的Mat]]></title><link>https://blog.csdn.net/aazqy1234/article/details/107759474</link><guid>https://blog.csdn.net/aazqy1234/article/details/107759474</guid><author>aazqy1234</author><pubDate>Mon, 03 Aug 2020 11:27:48 +0800</pubDate><description><![CDATA[OpenCV起初的库是围绕C接口构建的，将图像存储在内存中，它们使用了一个称为lplImage的C结构。这样做的问题是它带来了C语言的缺点，最大的问题是手动内存管理，它建立在用户负责处理内存分配和释放的假设的基础上。在C++中，引入了类的概念，使用户更容易通过自动内存管理。C++的主要缺点是，目前许多嵌入式开发系统只支持C。
所以在使用Mat时，不需要再手动分配其内存，并在不需要它时立即发布它。大多数OpenCV功能将自动分配其输出数据。
Mat基本上是一个具有两个数据部分的类：矩阵头（包含矩阵的大小，用于]]></description><category></category></item><item><title><![CDATA[opencv中的Mat详解]]></title><link>https://blog.csdn.net/aazqy1234/article/details/107732987</link><guid>https://blog.csdn.net/aazqy1234/article/details/107732987</guid><author>aazqy1234</author><pubDate>Sat, 01 Aug 2020 16:58:45 +0800</pubDate><description><![CDATA[Mat详解
1.初始化
Mat-the basic image container 最最基本的函数，所有图片在opencv中都是用mat形式来操作的。
//初始化一个Mat
Mat A,C;
A = imread(argv[1],IMREAD_COLOR);
Mat B(A);     //复制A给B
C = A;        //赋值运算
Mat D(A,Rect(10,10,100,100));   //使用一个矩形
Mat E = A(Range::all(), Range(1,3));   //使]]></description><category></category></item><item><title><![CDATA[一篇文章入门Git]]></title><link>https://blog.csdn.net/aazqy1234/article/details/107706692</link><guid>https://blog.csdn.net/aazqy1234/article/details/107706692</guid><author>aazqy1234</author><pubDate>Fri, 31 Jul 2020 15:44:01 +0800</pubDate><description><![CDATA[Git前世今生
大家可能听说过CVS、SVN这些免费的版本控制系统。但是集中式的版本控制系统不但速度慢，而且必须联网才能使用。有一些商用的版本控制系统虽然好用，但是是付费的。LInus（Linux的创始人）本来是使用BitKeeper来管理庞大的linux代码库，但是因为手下的人师徒破解BitKeeper的协议，被BitMover公司逮住了，收回Linux社区的免费使用权。Linus因此花了两周时间自己用C写了一个分布式的版本控制系统，这就是Git的诞生。之后Linux系统的源码就由GIt管理了。08年，G]]></description><category></category></item><item><title><![CDATA[C++ primer（第八章）学习笔记]]></title><link>https://blog.csdn.net/aazqy1234/article/details/107665404</link><guid>https://blog.csdn.net/aazqy1234/article/details/107665404</guid><author>aazqy1234</author><pubDate>Wed, 29 Jul 2020 17:22:15 +0800</pubDate><description><![CDATA[第七章 C++标准库
1.C++语言不直接处理输入和输出，而是通过一族定义在标准库的类型来处理IO这些类型从支持从设备读取数据、向设备写入数据的IO操作，设备可以是文件、控制台窗口等、还有一些类型允许内存IO，即，从string读取数据，向string写入数据。
2.IO库

istream(输入流)类型，提供输入操作
ostream(输出流)类型，提供输出操作
cin，一个istream对象，从标准输入读取数据
cout，一个ostream对象，向标准输出写入数据
cerr，一个ostream对象，通常用]]></description><category></category></item><item><title><![CDATA[qtcreator初步入门]]></title><link>https://blog.csdn.net/aazqy1234/article/details/107505559</link><guid>https://blog.csdn.net/aazqy1234/article/details/107505559</guid><author>aazqy1234</author><pubDate>Wed, 29 Jul 2020 15:09:41 +0800</pubDate><description><![CDATA[新建一个项目

Qt Creator 可以创建多种项目，在最左侧的列表框中单击“Application”，中间的列表框中列出了可以创建的应用程序的模板，各类应用程序如下：

Qt Widgets Application，支持桌面平台的有图形用户界面（Graphic User Interface，GUI） 界面的应用程序。GUI 的设计完全基于 C++ 语言，采用 Qt 提供的一套 C++ 类库。
Qt Console Application，控制台应用程序，无 GUI 界面，一般用于学习 C/C++ 语言，]]></description><category></category></item><item><title><![CDATA[C++ primer（第六章）学习笔记]]></title><link>https://blog.csdn.net/aazqy1234/article/details/107458529</link><guid>https://blog.csdn.net/aazqy1234/article/details/107458529</guid><author>aazqy1234</author><pubDate>Thu, 23 Jul 2020 14:50:10 +0800</pubDate><description><![CDATA[第六章
1.函数是一个命名了的代码块，我们通过调用函数执行相应的代码。函数可以有0或多个参数。而且会产生一个结果。可以重载函数，也就是说，同一个名字可以对应几个不同的函数。
2.一个典型的函数包括：返回类型 函数名字 0或多个形参parameter组成的列表以及函数体。我们通过调用运算符来执行函数。调用运算符的形式是一对圆括号，他作用于一个表达式，该表达式函数或者指向函数的指针。圆括号之内是一个用逗号隔开的实参argument列表，我们用实参初始化函数的形参。调用表达式的类型就是函数的类型。
大多数类型都能]]></description><category></category></item><item><title><![CDATA[Qt工具集及常用术语]]></title><link>https://blog.csdn.net/aazqy1234/article/details/107505010</link><guid>https://blog.csdn.net/aazqy1234/article/details/107505010</guid><author>aazqy1234</author><pubDate>Wed, 22 Jul 2020 09:50:22 +0800</pubDate><description><![CDATA[工具集：
qmake：核心的项目构建工具，可以生成跨平台的 .pro 项目文件，并能依据不同操作系统和编译工具生成相应的 Makefile，用于构建可执行程序或链接库。
uic：User Interface Compiler，用户界面编译器，Qt 使用 XML 语法格式的 .ui 文件定义用户界面，uic 根据 .ui 文件生成用于创建用户界面的 C++ 代码头文件，比如 ui_.h 。
moc：	Meta-Object Compiler，元对象编译器，moc 处理 C++ 头文件的类定义里面的 Q_OBJ]]></description><category></category></item></channel></rss>