自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(40)
  • 资源 (2)
  • 收藏
  • 关注

原创 C++的引用

本文参考:https://www.cnblogs.com/ronny/p/3662556.html定义:引用就是一个对象的别名引用不是值不占内存空间引用必须在定义时赋值,将变量与引用绑定本质:引用实质上是通过指针实现的引用是一个常量指针引用在内存中占4个字节在对引用定义时,需要对这个常量指针初始化汇编层面分析:我们从最简单的变量的定义开始,看编译器会做哪些事情。int var = 42;mov dword ptr [var],2Ah // 对应汇编代码上面语句申请了一

2020-08-23 12:30:02 191

原创 序列类型的打包和解包

打包:Python提供了另外两个涉及元组和其他序列类型的处理的便利。第一个便利是相当明显的。如果在大的上下文中给出了一系列逗号分割的表达式,它们将被视为一个独立的元组,即使没有提供封闭的圆括号。例如:data = 2,4,6,8 会被标识符赋值成元组(2,4,6,8),这种行为被称为元组的自动打包。在Python中,另一种常用的打包是从一个函数中返回多个值。return x,y 就自动返回单个对象,也就是元组。解包:a,b,c,d = range(7,11)对于这个语法,右边的表达式可以是任何

2020-08-16 17:04:29 299

原创 python的解析语法

一个很常见的变成任务是基于另一个序列的处理来产生一系列的值。通常,这个任务在Python中使用所谓的解析语法后实现很简单。一般形式如下:[expression for value in iterable if condition]if子句是可选的。解析计算与下面的传统控制结构计算结果列表在逻辑上是等价的。result = []for value in iterable if condtion: result.append(expression)Python支持类似的集、生成器或字典的解析

2020-08-16 16:50:38 480

原创 基于QT,C++和opencv 的人脸识别项目(五)

0.目录1.引言2.环境3.代码部分pro部分人脸检测代码人脸采集部分人脸识别部分1.引言这是本项目的第五篇文章,主要介绍相关的代码。第一篇文章,主要介绍项目的任务和实验环境,点击阅读第二篇文章,主要介绍opencv和相关模型,点击阅读。第三篇文章,主要介绍人脸检测haar+adaboost的原理,点击阅读。第四篇文章,主要介绍PCA降维和人脸识别的原理,点击阅读。2.环境本文的代码主要的IDE是qtcreator,主要语言是C++。因为把代码全部贴出来极不方便阅读,篇幅也会过于冗长,我把

2020-08-15 18:04:48 3225 4

原创 基于QT,C++和opencv 的人脸识别项目(四)

目录1.引言2.正文人脸识别原理PCA特征脸算法Eigenface3.总结1.引言本篇文章是上一篇原理介绍文章的延续,是这个项目的第四篇文章第一篇文章,主要介绍项目的任务和实验环境,点击阅读第二篇文章,主要介绍opencv和相关模型,点击阅读。第三篇文章,主要介绍人脸检测haar+adaboost的原理,点击阅读。第五篇文章,主要给出相关的代码,点击阅读。2.正文人脸识别原理PCA在这里分享一篇解释PCA主成分分析的博文。PCA原理其中中心的一句话就是:PCA能做的事情其实很有限,那就

2020-08-15 18:04:39 1398

原创 基于QT,C++和opencv 的人脸识别项目(三)

1.引言本篇文章是人脸检测的原理及实现的介绍,以及一些qt界面的编写。2.正文人脸检测的原理首先说一下,现在好多博客都没弄懂什么是人脸识别什么是人脸检测,每次都点进去一个人脸识别的项目,结果就是一个简简单单的人脸检测。人脸检测就是简单的在视频、摄像头或者图片中用框框标出人脸的位置,没有其他多余的标注,但是对于人脸识别,首先需要录入自己的人脸,再训练出模型,通过模型对视频、摄像头或者图片中的人进行检测+标注出名字等相关的信息。打个简单的比方,人脸检测就是一条狗能做的:这里是个人脸,叫几声吓吓他。人

2020-08-15 18:04:22 2175

原创 基于QT,C++和opencv 的人脸识别项目(二)

引言工欲善其事,必先利其器。我们先了解可能用到的相关知识。主要包含:opencv,dlib,相关模型。正文opencv本实验主要是基于opencv实现的,了解opencv也就是重中之重了。学习opencv最好的地方当然是opencv官网,当然囿于英语阅读的速度和方便性,我们也会考虑中文读物。我把有关项目的重要信息摘要给大家。OpenCV要求电脑中有如下packagesGCC(GCC是linux最常用的C/C++编译器,通常以gcc命令的形式在终端shell中使用),GCC教程Cmake(对于

2020-08-15 18:04:08 3072

原创 基于QT,C++和opencv 的人脸识别项目(一)

1.引言近期按照师傅的要求做了一个基于opencv实现的人脸检测和人脸识别的项目,并且用QT做了一个界面。由于长时间没有用C++,也是第一次接触opencv和qt,做起来有点慢,但也因此遇到的问题比较多,写下一篇文章作为项目的总结。因为涉及的原理及代码较多,我把本次项目分为多篇文章来介绍,在之后我会添加到github上。2.实验环境本项目主要是基于ubuntu - linux系统,所以介绍的相关的环境配置会大部分基于linux,我也尽可能把windows上的操作也加以介绍。本文的电脑配置为:c

2020-08-15 18:03:47 6411 3

原创 python的迭代器和生成器

迭代器Python中有许多类型的对象可以被定义为可迭代的。基本的容器类型,如列表、元组和集合,都可以定义为迭代类型。字符串可以产生它的字符的迭代,字典可以生成它的键的迭代,文件可以产生它的行的迭代。迭代器是一个对象,通过一些列的值来管理迭代。如果变量i定义为一个迭代器对象,接下来每次调用内置函数next(i),都会从当前序列中产生一个后续的元素。对象obj是可迭代的,那么通过语法iter(obj)可以产生一个迭代器。通过上述的定义,list的实例是可迭代的,但它本身不是一个迭代器。python还

2020-08-14 15:58:57 101

原创 python控制台输入和输出

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

2020-08-14 15:33:43 1272

原创 Python对象以及运算符

python是一种面向对象的语言,类则是所有数据类型的基础。标识符、对象和赋值语句在Python语言的所有语句中,最重要的就是赋值语句。temperature = 98.6temperature作为标识符,与右边的对象相关联。可以通过向现有对象指定第二个标识符建立一个别名original = temperature一旦建立了别名,两个名称都可以用来访问底层对象。创建和使用对象创建一个类的新实例的过程被称为实例化。例如我们可以用w=Widget()这样的语句来创建这个类的实例。许多py

2020-08-14 15:17:02 285

原创 python解释器是什么?

解释器对于电脑的CPU,虽然功能强大,但是仍然不能处理Python语言,只能处理机器指令语言。所以需要一个翻译,把我们所用的语言翻译成CPU能执行的代码。其实我们安装JAVA也好,C也好,Python也罢,主要就是安装的这个编程语言的“编译器”。编译器/解释器:高级语言与机器之间的翻译官python解释器Python语法简单明了,贴近人类的使用习惯。作为一种动态解释性语言,让人们在写代码的时候可以更多的关注业务逻辑细节,而不需要花太多精力去关注数据类型定义、程序运行效率等!当我们编写Pytho

2020-08-14 11:22:55 1349

原创 PCL点云库简要说明

概述PCL库是一个大规模的开源点云处理库。PCL框架包括大量的最新算法,如:滤波,特征估计,表面重建,配准,模型适配和分割。这些算法有很多应用,例如:从噪声数据中提取出离群值,3D点云缝合,分割一个背景的相关部位,提取关键点和计算出根据几何外形识别物体的描述符,点云的表面重建和可视化。PCL遵循BSD license,是一个开源软件,商用和研究都是免费的。PCL是一个跨平台并且在Linuxm, MacOS, Windows和Android中都可以顺利的编译和部署。为了方便改进,PCL被分为一系列的小

2020-08-12 09:43:39 1077

原创 再谈OpenCV中的Mat

OpenCV起初的库是围绕C接口构建的,将图像存储在内存中,它们使用了一个称为lplImage的C结构。这样做的问题是它带来了C语言的缺点,最大的问题是手动内存管理,它建立在用户负责处理内存分配和释放的假设的基础上。在C++中,引入了类的概念,使用户更容易通过自动内存管理。C++的主要缺点是,目前许多嵌入式开发系统只支持C。所以在使用Mat时,不需要再手动分配其内存,并在不需要它时立即发布它。大多数OpenCV功能将自动分配其输出数据。Mat基本上是一个具有两个数据部分的类:矩阵头(包含矩阵的大小,用于

2020-08-03 11:27:48 158

原创 opencv中的Mat详解

Mat详解1.初始化Mat-the basic image container 最最基本的函数,所有图片在opencv中都是用mat形式来操作的。//初始化一个MatMat A,C;A = imread(argv[1],IMREAD_COLOR);Mat B(A); //复制A给BC = A; //赋值运算Mat D(A,Rect(10,10,100,100)); //使用一个矩形Mat E = A(Range::all(), Range(1,3)); //使

2020-08-01 16:58:45 875

原创 一篇文章入门Git

Git前世今生大家可能听说过CVS、SVN这些免费的版本控制系统。但是集中式的版本控制系统不但速度慢,而且必须联网才能使用。有一些商用的版本控制系统虽然好用,但是是付费的。LInus(Linux的创始人)本来是使用BitKeeper来管理庞大的linux代码库,但是因为手下的人师徒破解BitKeeper的协议,被BitMover公司逮住了,收回Linux社区的免费使用权。Linus因此花了两周时间自己用C写了一个分布式的版本控制系统,这就是Git的诞生。之后Linux系统的源码就由GIt管理了。08年,G

2020-07-31 15:44:01 138

原创 C++ primer(第八章)学习笔记

第七章 C++标准库1.C++语言不直接处理输入和输出,而是通过一族定义在标准库的类型来处理IO这些类型从支持从设备读取数据、向设备写入数据的IO操作,设备可以是文件、控制台窗口等、还有一些类型允许内存IO,即,从string读取数据,向string写入数据。2.IO库istream(输入流)类型,提供输入操作ostream(输出流)类型,提供输出操作cin,一个istream对象,从标准输入读取数据cout,一个ostream对象,向标准输出写入数据cerr,一个ostream对象,通常用

2020-07-29 17:22:15 175

原创 qtcreator初步入门

新建一个项目Qt Creator 可以创建多种项目,在最左侧的列表框中单击“Application”,中间的列表框中列出了可以创建的应用程序的模板,各类应用程序如下:Qt Widgets Application,支持桌面平台的有图形用户界面(Graphic User Interface,GUI) 界面的应用程序。GUI 的设计完全基于 C++ 语言,采用 Qt 提供的一套 C++ 类库。Qt Console Application,控制台应用程序,无 GUI 界面,一般用于学习 C/C++ 语言,

2020-07-29 15:09:41 1580 1

原创 C++ primer(第六章)学习笔记

第六章1.函数是一个命名了的代码块,我们通过调用函数执行相应的代码。函数可以有0或多个参数。而且会产生一个结果。可以重载函数,也就是说,同一个名字可以对应几个不同的函数。2.一个典型的函数包括:返回类型 函数名字 0或多个形参parameter组成的列表以及函数体。我们通过调用运算符来执行函数。调用运算符的形式是一对圆括号,他作用于一个表达式,该表达式函数或者指向函数的指针。圆括号之内是一个用逗号隔开的实参argument列表,我们用实参初始化函数的形参。调用表达式的类型就是函数的类型。大多数类型都能

2020-07-23 14:50:10 229

原创 Qt工具集及常用术语

工具集:qmake:核心的项目构建工具,可以生成跨平台的 .pro 项目文件,并能依据不同操作系统和编译工具生成相应的 Makefile,用于构建可执行程序或链接库。uic:User Interface Compiler,用户界面编译器,Qt 使用 XML 语法格式的 .ui 文件定义用户界面,uic 根据 .ui 文件生成用于创建用户界面的 C++ 代码头文件,比如 ui_.h 。moc: Meta-Object Compiler,元对象编译器,moc 处理 C++ 头文件的类定义里面的 Q_OBJ

2020-07-22 09:50:22 714

原创 cmake是做什么的?

CMake(Cross platform Make)是一个开源的跨平台自动化构建工具, 可以跨平台地生成各式各样的 makefile 或者 project 文件, 支持利用各种编译工具生成可执行程序或链接库。CMake 自己不编译程序, 它相当于用自己的构建脚本 CMakeLists.txt,叫各种编译工具集去生成可执行程序或链接库。一般用于编译程序的 makefile 文件比较复杂,自己去编写比较麻烦, 而利用 CMake ,就可以编写相对简单的 CMakeLists.txt ,由 CMake 根据

2020-07-22 09:32:19 9521

原创 GNU工具集简介

在上个世纪八十年代,Unix系统都是商业软件,里面的应用软件也是商业软件,全是封闭的环境。GNU项目是为了创建自由的类UNIX软件,也因此开发出来了很多开源的系统工具,其中非常著名的就是GCC(GNU Compiler Collection,GNU编译器套件)。GNU开发类Unix系统的项目失败了,但是它开发了一系列工具集却用到了后来的Linux内核上,两者结合形成了今天的各种Linux发行版。在GNU工具集里面,开发时常见到的几个罗列如下gcc GNU C语言编译器g++ GNU C++语言编译器

2020-07-22 09:29:24 1515

原创 C++ primer(第五章)学习笔记

第五章1.空语句null statement:只有一个分号条件语句:if语句,switch语句,for语句,范围for语句,while语句,dowhile语句unsighed aCnt = 0, eCnt = 0, iCnt = 0;char ch;while (cin>>ch){ switch(ch){ case 'a': //case标签必须是整型常量表达式 ++aCnt; break; //漏写break容易引发缺陷 case 'e':

2020-07-20 10:39:44 93

原创 C++ primer(第四章)学习笔记

第四章:表达式1.表达式由一个或者多个运算对象operand组成,对表达式求值将得到一个结果result。字面值和变量是简单的表达式expression。把一个运算符operator和一个或多个运算对象组合起来可以生成交复杂的表达式。一元运算符:取地址符&,解引用符*二元运算符: 相等运算符==,乘法运算符*2.算法运算符: + - * / %(求余)逻辑和关系运算符:!(逻辑非),<,<=,>,>=,==,!=,&&(逻辑与),||(逻辑或)条

2020-07-19 21:37:05 90

原创 C++ primer(第三章)学习笔记

第三章1.命名空间的using声明。我们用到的库函数基本上都属于命名空间std。2.标准库类型string如何初始化类的对象是由类本身决定的。一个类可以定义很多种初始化对象的方式。string s1string s2(s1) //s2是s1的副本string s2 = s1 //等价于s2(s1),s2是s1的副本string s3("value") //s3是字面值"value",除了字面值最后的那个空字符外string s3 = "value" //等价于s3("value"),s3

2020-07-19 18:50:21 135

原创 C++ primer(第二章)学习笔记

第二章1.基本的内置类型:算数类型和空类型。算数类型:整型和浮点型。算术类型的尺寸,也就是该类型数据所占的比特数在不同机器上有所差别。可寻址的最小内存块称为字节byte,存储的基本单元称为字word。大多数计算机将内存中的每一个字节与一个地址关联起来。浮点型可以表示单精度、双精度和扩展精度值。通常float以一个字32比特来表示,double以两个字64比特来表示,long double以3或4个字表示。转义序列 \n换行符 \t横向制表符 \v纵向制表符 \r回车符2.变量。变量的基本形

2020-07-17 17:55:49 111

原创 C++ primer(第一章)学习笔记及英语单词

第一章 开始1.一个函数的定义包含四部分:返回类型,函数名,形参列表以及函数体。main在定义上与其它函数是一样的。2.IDE integrated developed environment 集成开发环境。程序源码存储在一个或多个文件中,这些文件称为源文件 source file。unix系统中的编译器通常将可执行文件命名为a.out。在unix系统中,通过$ echo $?3.isostream库。包含输入流和输出流,一个流就是一个字符序列,是从IO设备独处或者写入IO设备的。“流”想表达的是

2020-07-16 20:51:19 157

转载 Linux 文件描述符

了解Linux怎样处理输入和输出是非常重要的。一旦我们了解其原理以后,我们就可以正确熟练地使用脚本把内容输出到正确的位置。同样我们也可以更好地理解输入重定向和输出重定向。Linux系统将所有设备都当作文件来处理,而Linux用文件描述符来标识每个文件对象。其实我们可以想象我们电脑的显示器和键盘在Linux系统中都被看作是文件,而它们都有相应的文件描述符与之对应。其实我们与计算机之间的交互是我可以输入一些指令之后它给我一些输出。那么我们可以把上面表格中的文件描述符0理解为我和计算机交互时的输入,而这个输入

2020-07-16 15:50:11 82

转载 LInux下的常见shell

Unix/Linux上常见的Shell脚本解释器有bash、sh、csh、ksh等,习惯上把它们称作一种Shell。我们常说有多少种Shell,其实说的是Shell脚本解释器。bashbash是Linux标准默认的shell,本教程也基于bash讲解。bash由Brian Fox和Chet Ramey共同完成,是BourneAgain Shell的缩写,内部命令一共有40个。Linux使用它作为默认的shell是因为它有诸如以下的特色:可以使用类似DOS下面的doskey的功能,用方向键查阅和快速输

2020-07-16 15:02:15 234

原创 cvui配置遇到的LNK2019外部链接的问题

今天在做cvui的下载和安装和遇到了调试总是出现LNK2019等问题在网上找的方法里没有可以解决问题的。经过不懈努力,我终于调试好了。我看了看在github中给出的.h文件,https://dovyski.github.io/cvui/installation/他把实现也写在了.h文件里,然后用ifdef,endif设置成预处理块,所以在include调用之前先得define一下,我之前一直写在include后面导致只有声名没有实现。所以这两句话一定不要顺序变化!!!define要在调用前面才

2020-07-10 11:27:38 153

原创 行列式在坐标轴中的意义(用于理解PCA)

行列式,记作 det(A),是一个将方阵 A 映射到实数的函数。行列式等于矩阵特征值的乘积。行列式的绝对值可以用来衡量矩阵参与矩阵乘法后空间扩大或者缩小了多少。如果行列式是 0,那么空间至少沿着某一维完全收缩了,使其失去了所有的体积。如果行列式是 1,那么这个转换保持空间体积不变。...

2020-07-09 11:05:46 909

原创 matlab处理dicom文件并重排代码

下面代码是我在做肺气道树的分割,对dicom进行重排的代码在博客中,还有区域生长法等等图像分割的方法%----------------%提取dicom信息,重排并且另存为矩阵%----------------clear,clc;lsName=‘C:\Users\z7641\Desktop\009’;%列出文件中的所有文件dd = ls(lsName);d(1,:)=[];d(1,...

2020-04-03 11:23:44 687 2

转载 Python星号用法: *和**的用法及区别

一个星(*):表示接收的参数作为元组来处理两个星(**):表示接收的参数作为字典来处理1.列表 list是处理一组有序项目的数据结构,即你可以在一个列表中存储一个序列的项目。列表中的项目。列表中的项目应该包括在方括号中,这样python就知道你是在指明一个列表。一旦你创建了一个列表,你就可以添加,删除,或者是搜索列表中的项目。由于你可以增加或删除项目,我们说列表是可变的数据类型,即这种类型是...

2020-04-03 11:08:51 225

原创 ubuntu修改密码时遇到:认证令牌操作错误

今天在修改自己用户的密码时遇到了如下的问题:这个问题在网上并没有详细的解决方案,我把自己的贴上去仅供参考。如上,我们要修改的是用户自己的密码,我们知道root权限下可以修改任何的用户的密码,所以先进入root指令下输入自己的root密码就可以了接着修改用户的密码。如果要修改root密码直接 sudo passwd root 来修改。...

2020-03-23 15:48:47 3272

原创 Data Mining数据挖掘课程记录

今年是我第一次数据挖掘,数据挖掘是指从大量的数据中通过算法搜索隐藏于其中信息的过程。然而今年的课程并不是特别关注挖掘的算法而是概念。下面做个总结,也当为我的期末复习。IntroductionThe concept of extracting previously unknown and potentially usefull, interesting knowledge from large ...

2020-01-26 14:31:15 336

原创 计算机组成原理名词笔记(1)

记录一些做笔记留下的关键词系统软件指的是控制和协调计算机及外部设备,支持应用软件开发和运行的系统,是无需用户干预的各种程序的集合。主要功能是调度,监护和维护计算机系统中各种独立的硬件。包括操作系统和一系列的基本工具,如编译器,数据库管理,存储格式化,文件系统管理,用户身份验证,驱动管理,网络连接等方面的工具。可以分为五类: 操作系统类、语言处理程序类、服务性程序类、标准库程序类、数据库管理...

2019-12-23 19:18:25 412

原创 opencv环境配置错误

今天在配置opencv的环境的时候遇到一个错误无法打开包括文件: “opencv2/core/core.hpp对于 VS2017解决办法:将 x86 改成 x64网上大多的环境配置都是在x64来讲的,改成x64即可,也不影响操作...

2019-11-17 23:21:33 221

原创 matlab图像处理学习笔记

因为大四的项目设计是关于图像切割,具体题目是 airway segementation,也就是肺气道树的切割算法。实现语言是matlab,虽然已经转了计算机,matlab以后会很少接触,但是为了完成项目,还是学习并记录一下。format long(16)format short(4)format bank(2)format rat :fractionformat short ef...

2019-11-16 05:34:04 453

原创 C++学习笔记整理

c++ from 2019 10 20C++学习《 C++ primer 5th ed 》网上的知识排列较为混乱,仅供参考。C++简介C++ 是一种静态类型的、编译式的、通用的、大小写敏感的、不规则的编程语言,支持过程化编程、面向对象编程和泛型编程。C:1940 ,面向结构,面向过程,代码太多后,管理很难,未解决软件危机。C++被认为是一种中级语言,它综合了高级语言和低级语言的特点...

2019-11-14 03:09:16 552

原创 HCI-人机交互

what is it about?Humans Machines InterfaceAbout the system developmentInterface:present instructions to human and translate instruction from human to machineInteraction offer mode of operation a...

2019-11-13 18:26:00 4558

Render_con.m

该代码完成了三维矩阵重建为三维图像。码内对参数和算法有详细的解释,如果有任何不懂的地方,可以联系博主。对于结果的展示,可以在我的其他博文里看。

2020-04-03

肺气道树的分割.rar

该文档包含一个基于matlab三维区域生长、26邻域,阈值分割来实现的肺气道树的分割,代码内对参数和算法有详细的解释,如果有任何不懂的地方,可以联系博主。对于结果的展示,可以在我的其他博文里看。

2020-04-03

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除