自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Asher_zheng的专栏

ComputerScience

  • 博客(30)
  • 资源 (1)
  • 问答 (2)
  • 收藏
  • 关注

原创 C++11新特性

nullptrhttp://www.cplusplus.com/reference/cstddef/nullptr_t/https://en.cppreference.com/w/cpp/language/nullptrlist initializationhttp://www.cplusplus.com/reference/initializer_list/initializ...

2019-12-24 11:02:39 268

原创 设计模式之Composite模式

适用场景 Composite模式适用于可以自包含的情况,比如说一个文件夹包含多个子文件夹,每个子文件夹又可以包含多个子文件夹。类似的问题还有:一个圆可以包含许多小圆,每一个小圆内部又可以包含多个圆。模式介绍 Composite模式主要涉及到继承和委托(Delegation)的结合,此处以圆为例的UML图如下所示:其中SingleCircle为单一圆,Circ...

2019-12-23 21:01:47 338

原创 基于Dlib进行人脸特征点批量标注

程序功能:遍历传入文件夹下的所有Png格式图片并对图片的人脸进行标注。标注结果:每个图片会生成一个xml文件,里面包含68个关键点的信息,如下所示,开发环境:Win10&VS2015使用开源库:C++ XML parser :https://github.com/leethomason/tinyxml2Dlib : https://github.com/davisk...

2019-12-13 12:35:17 621 1

原创 基于Opencv和Dlib检测人脸并实时显示人脸姿态

开发环境:Win10&VS2015识别效果:打开笔记本镜头,使用Dlib实时检测出68个关键点,并用一条线指出人脸朝向:实现代码:#include <opencv2/opencv.hpp>#include <vector>#include <dlib/opencv.h>#include <dlib/image_process...

2019-12-13 11:14:08 1323 1

原创 C++多态实现之单一继承情况下Virtual Table布局

由于一次面试被问到此问题,当时回答的模棱两可,很不到位,后在侯捷老师翻译的深度探索C++模型里第4章P157页找到详细的解释(才读了第一章),先在这里记录下,有时间再详细看下。单一继承情况下Virtual Table布局如下所示:...

2019-12-08 22:11:15 136

原创 C++对象模型、多态以及单一继承下的运行内存分析

引言对中高级程序员来说,C++内存模型是C++知识点里比较重要的一部分,对此了解之后便可对C++类的实现机制以及多态性有更多的理解,尤其是C++运行过程中各个对象在内存里的分布情况,以下对这些知识点做简要介绍。C++类的构成:C++的类由两部分构成,类里的数据和类里的函数,类数据有两种,静态的非静态的,类函数有三种,静态的非静态的,virtual的对象模型不同的对象模型会造成布...

2019-12-04 20:58:22 431

原创 设计模式之观察者模式

引言 松耦合设计是指对象之间较为独立,可以交互,但是不清楚彼此的细节,与之等效的说法是高内聚低耦合,对象与对象之间的互相依赖性很低,这样可以使构建的OO系统更有弹性,因此使系统更能适应变化。观察者模式 观察者模式是松耦合设计的一个具体表现形式,它定义了对象之间的一对多依赖,一指的是被观察者,多指的是观察者,这样当被观察的一个对象改变状态时,它所有的依赖者都会受...

2019-11-27 00:11:39 179

原创 设计模式之策略模式和三个设计原则

引言 在软件开发中,无论你使用什么语言,构建何种类型的系统,最初的软件设计的多好,每隔一段时间之后,我们都需要对软件做一些改变以应对新的需求,新的环境,就像人一样,软件也总是需要成长与改变。 因此仅仅知道抽象封装继承多态这些OO基础,并不足以设计出良好的OO系统,因为良好的OO设计必须具备可复用,可扩充,可维护三个特性。在软件工程领域,经历代程序员不断的实践,总...

2019-11-22 11:20:37 1100

原创 3D论文阅读之AlignNet-3D

引言 Align(register)point clouds 即对齐(配准)点云,意思是将一个点云匹配到另一个点云上面,主要用来将从一个物体的不同角度得到的局部点云拼接起来,由此得到一个完整的3D模型,对点云做Alignment或Registration从本意上来说并没有什么本质的区别,尤其是在阅读学术论文的时候。 但是我在工作中所了解到的是Alignment是把几...

2019-11-16 10:35:12 990 2

原创 Qt小技巧之重写点击最大化按钮时响应

引言 使用QT进行显示图片的时候,点击自带最大化按钮就可将主窗口调整到所使用的电脑屏幕分辨率的大小,但是如果刚启动时显示的图片在确定比例下显示正常,而这个比例如果和屏幕宽高比不一致,那么整个窗口放大后图片就会左右或上下被拉长而发生显示上的形变,我们可以通过重写窗口改变时的响应事件voidQWidget::changeEvent(QEvent*event)来调整点击最大化按钮后...

2019-10-24 11:07:40 1916

原创 Tinyply读取ply文件并显示点云

Introduction 本篇文章主要介绍了使用Tinyply读取点云并显示,其中也包含了ply文件的简单介绍,读取ply文件的两种方式及其优缺点,以及显示点云部分。PLY文件简介 PLY为Polygon File Format的首字母缩写,是Stanford大学开发的一套三维mesh模型数据格式,又称Stanford Triangle Format,PLY格式...

2019-10-13 16:25:14 2026

原创 C++小工具之得到鼠标位置并模拟点击

检测鼠标左键被按下: KEY_DOWN(VK_LBUTTON)得到鼠标按下时坐标: POINT p; GetCursorPos(&p); cout << " x position:" << p.x << " y position: " << p.y << endl;设置模拟点击的位...

2019-09-18 16:12:48 2104 1

原创 PCL中使用RANSAC算法计算点云圆心坐标及半径

引言 PCL中可通过RANSAC算法来计算一些规则点云的数学模型,并返回模型的参数,因此RANSAC算法可用来从点云中提取圆形点云并得到圆形点云的圆心、半径及圆所在平面的法向量(适合于3D Circle)。在PCL的RANSAC算法模型中,有2D Circle和3D Circle两种圆形模型,以下分作简要介绍。2D Circle模型 2D Circle模型是从原...

2019-08-22 22:18:42 10119 20

原创 PCL中RANSAC模型的使用

RANSAC算法是什么 RANSAC算法于1981年由Fischler和Bolles提出,全程是RANdom SAmple Consensus,一般中文翻译为“随机抽样一致性算法”,它是一个迭代算法,主要用于从包含外点(outliers,可理解为噪声)的数据集中估计数学模型的参数。RANSAC算法有两个假设,第一个是假定所有的数据都是由内点和外点组成,内点可由特定参数的模型所表示...

2019-08-17 11:33:14 7042 1

原创 PCL中使用KdTree在点云中进行K近邻及半径查询

KdTree背景知识 KdTree(也称k-d树)是一种用来分割k维数据空间的高维空间索引结构,其本质就是一个带约束的二叉搜索树,基于KdTree的近似查询的算法可以快速而准确地找到查询点的近邻,经常应用于特征点匹配中的相似性算法。 而索引结构中相似性查询算法有两种基本的方式:一种是范围查询(radius searches),另一种是K近邻查询(K-neighbor...

2019-08-06 15:37:31 10526 26

原创 PCL中点云滤波器的使用(Filtering In PCL)

1 开发环境配置(1) VS2015 & PCL1.8.1(2) 配置PCL头文件及库目录Include:$(PCL_ROOT);$(PCL_ROOT)\include\pcl-1.8;$(PCL_ROOT)\3rdParty\Eigen\eigen3;$(PCL_ROOT)\3rdParty\FLANN\include;$(PCL_ROOT)\3rdParty\V...

2019-08-05 10:49:37 4008 1

原创 PCL如何使用ICP(iterative closest point)算法

ICP介绍假如一个点云只是另一个点云的刚性变换的话,可以通过不断缩小两个点云点之间的距离得到两个点云之间的刚性变换矩阵,从而使两个点云可以完全拼接在一起,而这种迭代最近点的算法就是ICP.Why ICP 算法?ICP主要用在2D重建,机器人定位并实现最佳路径规划以及3D模型的registration等应用场合。如何使用PCL里的ICP算法?1. 添加必要头文件:#inc...

2019-07-27 14:39:37 9093 2

原创 Qt中Excel的使用

QtXlsx并不存在在安装好的Qt里面,如果要使用,必须要自己下载QtXlsx的源代码加入自己的工程里面准备工作: QtXlsx下载地址:https://github.com/QtExcel/QXlsx或者https://github.com/dbzhang800/QtXlsxWriter。 git 方式: git clonehttps://github.com/Qt...

2019-07-19 13:28:30 321

原创 推荐课程:CrashCourse之计算机速成课

最近看了Crash Course的计算机速成课,感觉是一门很好的关于电子和计算机的入门课,该课程有以下特点:1. 每节课的课时很短,一般为10~12分钟,比较易于接受,而且适合上下班路上看;2. 课程每节课组织合理,知识结构清晰,但是语速很快,刚开始我还以为是倍速播放;3. 其中讲述了计算机历史发展过程中的重要人物及里程碑式的发明,从继电器,二极管,一直到内存,集成电路,再到电脑的发明...

2019-07-11 22:44:11 1474

原创 Cplusplus遍历文件夹及子文件夹得到文件夹下某一后缀的所有文件

使用Dlib进行人脸标注时需要遍历所有的png格式的文件,可使用以下代码获取:int getAllFiles(string path, vector<string>& files){ intptr_t hFile = 0; struct _finddata_t fileinfo; string p; if ((hFile = _findf...

2019-07-10 16:01:16 162

原创 OpenCV resize 调整图片大小

由于项目需要把图片resize成另外一个大小,可通过以下代码实现: cv::Mat srcImage = cv::imread(*it, cv::IMREAD_ANYDEPTH); cv::Mat trgtImage = cv::Mat::zeros(1632, 1224, CV_16UC1); ...

2019-07-10 15:08:15 1107

原创 Open CV 逆时针,顺时针旋转90度

1. 读取图片:cv::Mat tmpImage = cv::imread(“imgPath”);2. 逆时针旋转90度,保存: transpose(tmpImage, tmpImage); flip(tmpImage, tmpImage, 0); cv::imwrite(imgFullPath, tmpIma...

2019-07-10 14:50:06 955

原创 Qt工程缺少QtMsBuild导致编译出错解决方法

现象:Qt项目复制到另一台新电脑上,配置好头文件及link库之后,仍然出错,错误信息如下:编译时会出现QtMsBuild:couldnotlocateqt.targets,qt.props;projectmaynotbuildcorrectly.解决方法:此错误是因为工程找不到QtMsBuild下关于Qt的配置及编译文件引起的,把原来Qt安装时生成的...

2019-07-03 18:43:39 16433 3

原创 VS2015 compile bug: unresolved external symbol WinMain

Error Info in my project:Error LNK2019 unresolved external symbol WinMain referenced in function "int __cdecl __scrt_common_main_seh(void)" (?__scrt_common_main_seh@@YAHXZ) OpenGL06Dir...

2019-07-03 18:27:10 749

原创 移动Qt项目时QtMsBuild及rcc.exe相关问题

把使用到Qt相关的工程copy到没有安装Qt的电脑上时,由于需要rcc.exe重新生成qrc_***.cpp以及ui_****.h两个文件,程序找不到rcc.exe而编译失败,解决方法,从安装Qt的电脑上找到QtMsBuild以及msvc2015_64/bin文件夹1 CopyQtMsBuild文件到新电脑工程目录下面;2 建立编译时提示的rcc.exe所在的文...

2019-07-02 18:04:15 3059

原创 Qt中控件中文不能显示的问题

最近开发一个界面,需要点击按钮弹出一个对话框,但是弹出对话框的时候中文总是显示乱码,环境 Qt5.8.0 & Visual Studio 2015解决方案:添加 #pragmaexecution_character_set("utf-8") ,重新编译执行,即可解决Ps:QTextCodec::setCodecForCStrings(QTextCodec::c...

2019-06-07 10:14:34 4953

原创 Linux Fedora21 下QEMU虚拟MINI2440 的配置与搭建

注:本文是个人经过网上收集资料外加亲身实践总结所写,所有参考均已注明出处,如若有未注明、遗漏或者错误的地方,还请批评指责,不吝赐教。 Step1,获取qemu for mini2440以及mini2440 u-boot的源码 主要有两种方法: (1)有直接下载,解压安装下载网址有https://code.google.com/p/ (Google国内被封,不可用)

2015-03-20 21:50:18 2334 1

原创 Fedora21安装RTEMS4.11编译环境(补充)

前几天写了一篇环境搭建,但是感觉有点笼统,主要是从整体上讲了如何做该怎么做,这里就把我搭建环境的过程详细的说一下 1、 安装好Fedora之后,首先检查系统是否安装gcc,make,makeinfogcc –versionmake –versionmakeinfo –version如若没有,系统会提示安装,输入y即可 2、 配置Linux 下C语言开发环境fed

2015-03-19 20:16:06 1161

原创 Fedora21安装RTEMS4.11编译环境(X86-64bit)

注:fedora版本与RTEMS版本以及相应的交叉编译工具要一一对应,否则会出现编译不通过的问题或版本老旧问题,具体请查看ftp://ftp.rtems.com/pub/rtems/linux/下的对应情况 1、 虚拟机下安装fedoraversion21,(各个版本安装过程都差不多,大致步骤都一样,个中有些许差别)参考: http://blog.csdn.net/meng44

2015-03-16 20:29:01 1108

原创 开博

恍惚间2014已过

2014-07-01 14:44:19 542

QtExecelTest.rar

Qt中读写Excel示例程序,用于创建Excel表格,插入数据,并保存,

2019-07-19

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

TA关注的人

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