自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(53)
  • 资源 (11)
  • 收藏
  • 关注

原创 C++常用库/Json解析库--RapidJson

前言对于后台开发以及网络开发最常见的就是需要用Json数据进行交互,很多基于C++的搜索引擎,需要对Json格式的数据进行解析,一般来说常用的解析库JsonCpp,但是JsonCpp的缺点在与解析或者生成Json数据效率并不是很高,对于千万级的数据,可能需要将近一个小时的解析时间。相比之下,RapidJson解析就要快很多,以下是常用的Json解析库的效率对比:解析速度对比生成速度对比官方教程Rap

2017-09-05 17:08:47 5277 1

原创 nginx源码解析(二)-内存池与内存管理ngx_pool_t

ngx_pool_t是一个非常重要的数据结构,在很多重要的场合都有使用,很多重要的数据结构也都在使用它。那么它究竟是一个什么东西呢?简单的说,它提供了一种机制,帮助管理一系列的资源(如内存,文件等),使得对这些资源的使用和释放统一进行,免除了使用过程中考虑到对各种各样资源的什么时候释放,是否遗漏了释放的担心。例如对于内存的管理,如果我们需要使用内存,那么总是从一个ngx_pool_t的对象中获

2017-01-12 14:56:14 998

原创 nginx源码分析(一)-基础数据结构ngx_str_t

近来想拜读以下优秀的开源代码设计,之前也阅读过qt以及opencv的源码,不过学习nginx源码的目的是想试着用设计模式以及C++的思想来封装一次nginx的源码,但是第一步还得好好熟悉一下nginx,大师们都说过,最好的办法就是看源码,万能的开源。ngx_str_t定义ngx_str_t是nginx中定义的类似于字符串的结构,其中包含了字符串的长度(不包含终止字符'\0')以

2017-01-11 11:27:26 2733

原创 Qxt的使用

Qxt是对Qt的扩展,即对Qt的控件进行一定的补充,类似于Qwt,可能Qwt大家更加熟悉一点,其实本质是一样的,都是对Qt的控件进行相应的补充。我使用的Qt版本是5.5.1,与之配套的是VS2010进行开发。下面将讲解如何对Qxt源码适配于VS2010进行编译,以及如何将生成的qxt库导入到Qt Designer中使用,最后举例说明关于QxtSpanSlider(继承于QSlider,含有两个滑动

2017-01-02 18:49:21 10475 3

原创 设计模式(三)单例模式

单例模式在GUI编程中比较常见,很多时候我们都只需要点击按钮只创建一个实例化的窗体,而不是每次点击按钮都创建已经实例化的窗体。所有学好单例模式还是很有用处的。单例模式的一般UML模型表示如下:单例模式原理及实现单例模式的基本思想是:保证一个类只有一个实例,并提供一个访问它的全局访问点。首先,需要保证一个类只有一个实例;在类中,要构造一个实例,就必须调用类的构造函数,如此,为

2016-12-30 20:42:53 570

原创 设计模式(二)工厂方法模式+抽象工厂模式

工厂方法模式与简单工厂模式的区别在于:简单工厂模式用单一工厂来生产所有同种类的产品,而工厂模式是用对应的工厂来生产同一种类的不同产品。对于工厂方法模式而言,其简单模型的UML为:工厂方法模式的定义:定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到工厂抽象类的子类。工厂方法模式的简单模型的代码:#includeusing namespace st

2016-12-29 20:54:51 474

原创 设计模式(一) 简单工厂模式

对于工厂模式,具体上可以分为三类:简单工厂模式;工厂方法模式;抽象工厂模式。对于上面的三种工厂模式,从上到下逐步抽象,并且更具一般性。简单工厂模式是应用于生产大量父类子类对象的方法,例如在一个界面中进行简单的加减乘除的操作,我们可以将加减乘除进行抽象,得到一个接口算数类,加减乘除分别实现这个接口类,利用多态性,在工厂类中进行统一的对象生产,从而有利于对象的管理。实际应用场景包括:

2016-12-29 16:55:04 380

原创 Qt+opencv 图像目标标定

最近博士师兄在做多目标跟踪,需要对图片中的行人进行标定,按照帧号以及行人的坐标记录按照格式记录在文本文件中,但是手工记录太麻烦,而且相当耗时间,于是乎自告奋勇的帮忙做了一个,花了三个小时左右的时间搞定(大神会不会觉得弱爆了),博士师兄要求的功能大致如下:1、选择图片坐标,注意是坐标是对应原有的图片坐标,与图片的缩放没有关系。即不管放大缩小多少,右下角的坐标一定对应着原始图片的大小。2、每选

2016-12-25 17:09:45 3843 2

转载 C++中引用(&)的用法和应用实例

最近看Effective C++时,突然发现自己对引用了解不是很深刻,因此搜索了一下,这篇讲解的觉得还可以,分享给大家,原博客地址:C++中引用(&)的用法和应用实例,博文内容如下:对于习惯使用C进行开发的朋友们,在看到c++中出现的&符号,可能会犯迷糊,因为在C语言中这个符号表示了取地址符,但是在C++中它却有着不同的用途,掌握C++的&符号,是提高代码执行效率和增强代码质量的一个很好的

2016-12-24 16:07:48 784

转载 值得学习的C/C++语言开源项目

- 1. WebbenchWebbench是一个在Linux下使用的非常简单的网站压测工具。它使用fork()模拟多个客户端同时访问我们设定的URL,测试网站在压力下工作的性能,最多可以模拟3万个并发连接去测试网站的负载能力。Webbench使用C语言编写, 代码实在太简洁,源码加起来不到600行。下载链接:http://home.tiscali.cz/~cz210552/we

2016-12-15 15:34:28 1345

原创 Qt中多线程的使用

最近项目中提出了新的需求,需要采集和收集图片。因为是高速相机,按照帧率至少200FPS的速度计算的话,30秒时间的图片也就是6000帧,同时要保持尽量不掉帧。因此这个开发任务就有两个重点:1、如何能够在收集图片的时候不掉帧,把30秒钟采集到的图片尽可能的采集和收集到;2、在保存文件时,如何能够保证界面的及时响应,因为需要存放大量的图片,在只有一个线程工作的情况下,势必不能保持界面的良好响应

2016-11-11 20:46:39 17503 2

原创 Unix环境高级编程--多线程(一)

对于刚开始写程序或者在很长一段时间,在编写程序时,我们都只会在一个main函数中进行程序的逻辑执行顺序的编写。在接触GUI程序的设计的时候,很多时候希望有一个前端显示以及后台计算的需求。此时如果以多进程的方式来设计,会设计复杂的进程间通信以及上下文切换的操作,因此开始有线程的概念,此时程序执行的最小单位开始从进程向线程转移,线程称为程序执行的最小单位。同一个进程内部可以有多个线程,它们共享用一

2016-11-05 17:31:44 1357

原创 Unix环境高级编程---文件I/O

学习了一段时间Unix环境编程了,看到进程和线程这部分感觉之后,就感觉进步比较缓慢,所以在缓慢的过程中,希望可以多前面的知识进行一定的复习和巩固,希望以写的方式,加深对前面知识的理解。从第三章到第五章都是和文件和I/O相关的。这章总结的是第三章的相关内容。文件描述符在Unix系统中,或者对于更加属性的Linux系统中,所有的设备都是用文件来统一定义的。文件描述符就是对文件的一种

2016-10-26 14:08:32 722

原创 Qt+OpenCV缩放图像至格子级别以及跟踪鼠标位置

最近需要做一个将图像放大至格子级别以及随着鼠标移动(不需要按下鼠标),实时显示鼠标位置以及对应的RGB的值。因此结合了opencv以及Qt做了一个这样的东西;大致效果如图;实现的主要的主要思路是,通过OpenCV进行图像的处理和放大,然后转换为QImage在Qt中显示出来。      opencv缩放图像首先是利用opencv进行图像的放大,利用的函数是resize

2016-10-21 11:22:49 5775 3

原创 qt动画框架(三) 自定义tab滑动导航栏

本章主要介绍用处比较多的tab滑动从而达到窗体的切换功能,其功能类似与QTabWidget。实现的效果图如图所示:其中tab滑动的效果实现是通过qt的动态框架实现的。代码如下:#ifndef TABCUSTOME_H#define TABCUSTOME_H#include #includeclass QPixmap;class QPropertyAnimation;n

2016-08-24 21:38:00 7587

原创 LeetCode 20. Valid Parentheses

一个关于堆使用的问题,其实学习过关于二叉树,了解过遍历思想的,应该很容易看到此题的时候,朝这个方向思考,LeetCode 20题的原题是:Given a string containing just the characters '(', ')', '{', '}', '[' and ']', determine if the input string is valid.The b

2016-08-10 20:01:10 432

原创 QMediaplayer详解以及简易音乐播放实现

QMediaplayer可以用于解析音频文件和视频文件,继承自QMediaObject,设计到的对象为QMediaContent。QMediaObject可以提供关于媒体内容的接入,通过URL进行初始化,同时也可以提供可以播放的媒体文件的列表,与QMediaplayer对象息息相关。使用QMediaplayer,除了需要添加必要的头文件之外,还需要在.pro(Qt的工程配置文件)添加QT +=

2016-08-07 23:12:52 35156 12

原创 详解Qt动画框架(2)--- 实现网易云音乐tag切换

在详解Qt的动画框架(一)介绍了关于Qt动画框架一些基础知识,在这一节中,将会实际的看到有关与动画框架的实现,该案例主要实现的具体是网易云音乐tag的切换,网易云音乐中的切换如图所示:本文介绍的方法也可以达到这种切换的简易效果。设计动画框架首先我们需要设计对于动画框架,其需要的动画效果是什么?对于上图,我们需要的是三个tag可以不停的切换,可以抽象为左移以及右移,即

2016-08-07 18:17:21 3175 3

原创 详解Qt的动画框架(一)

Qt的动画框架是在4.6版本引入的。通过Qt动画属性,Qt动画框架为部件和其他QObject对象的动画操作提供了非常大的自由性。Qt动画框架也能用于图形视图框架中。以下是Qt中的有关动画框架类的类视图:Qt的动画框架的Base是由QAbstactionAnimation以及它的两个子类QVariantAnimation和QAnimationGroup组成。QAbstractAnimatio

2016-08-07 17:29:57 5554

原创 LeetCode 263. Ugly Number

今天觉得无聊,就做了几道LeeCode上面的题,碰到了一道关于Ugly Number的题目,其实这道题蛮简单的,但是第一次做的时候,想的比较简单,碰到了钉子,题目的大意如下:Write a program to check whether a given number is an ugly number.Ugly numbers are positive numbers whose pri

2016-08-05 20:20:10 516

原创 Qt Designer的进阶使用

熟悉Qt的人或多或少的都会使用Qt Designer(以下简称Designer),在Qt中,提供了一个用于可视化设计软件的界面的过程,使用Designer,你会减少使用代码来设计界面的过程,当然更多的时候是结合着代码以及Designer两者,从而实现较好的界面,对于熟悉MFC的人,对于生成的窗体上拖拽控件应该是非常的熟悉的,本文的侧重点不是介绍Designer的基本使用,而是笔者在使用过程中摸索出

2016-07-30 10:45:10 15184

原创 numpy简单入门学习

为了快速的学习numpy,只要参阅了官网的快速入门教程进行学习,官网的网址:https://docs.scipy.org/doc/numpy-dev/user/quickstart.html。虽然和matlab的操作大同小异,但是还是需要很多明确的python的概念,比如序列,列表以及元组的概念,当然这也是python里面需要注意最多的基本的数据类型。现将学习的基本过程叙述如下:numpy是通

2016-07-15 16:21:41 6253

原创 Matplotlib简单入门学习

因为学习机器学习以及试图通过python实现相应的算法,因此学习了Matplotlib中的画图,那么就问到,问啥不用matlab呢,答:多一门技术,多一口饭;而且发现Matplotlib的画图功能还是蛮强大的,这次仅仅只是学习了以前在MATLAB里面会的相应的东西,然后学习一下在python中对应的知识。matplotlib在Python中应用最多的2D图像的绘图工具包,使用matplotli

2016-07-15 11:18:06 51360 4

原创 Qt (六) -- Qt5.5.1实现通用串口程序

最近教研室在做高速相机,通过图像采集卡和自己做的高速相机链接,从而采集和收集图像。图像采集卡和高速相机是通过Cameralink连接,其中也包含了相机和图像采集卡之间的串口的硬件借口,在老师的要求下,实现了两种串口程序,一种是通过cameralink的API实现串口数据的传输,一种则是通过USB转RS422的转接器,实现对高速相机的寄存器的读写。本文主要介绍了通过Qt的QSerialPort和QS

2016-07-07 19:20:53 21252 11

原创 Ubantu下配置Sublime Text3---python环境的搭建

因为学习机器学习算法的原因,买的参考书籍很多都是python语言进行开发的,因此也想着在Linux系统下配置python的环境。Sunlime是一款非常流行的编辑器,可以添加很多小巧有用的插件,同时也可以配置成一款自己常用开发语言的IDE,所以网上有很多配置Sublime的教程,看了和学习很多教程,决定使用Sublime 3,因为便于配置python的开发环境。首先当然需要安装

2016-07-05 21:55:43 15797 3

原创 Ubantu下的输入法--小巧有用

其实装虚拟机或者装Ubantu与很多次了,但是每次遇到的问题都不一样,有的时候可能用的版本不一样,可能遇到的问题都会不一样,虽然大多数用的都是14.04版本的。然后写这篇博客的目的就是为了介绍一个很小的应用,也就是输入法。在最近的Ubantu的LTS版本继承了很多东西,比如电脑助手,或者是搜狗输入法,当然是我的另外一台电脑上装的虚拟机用的Ubantu的版本,在教研室用的版本,就没有这么方便了,输入

2016-07-05 20:59:43 1213

原创 机器学习(三) --- SVM学习:模型求解

学习SVM理论基础后,更进一步了解SVM算法就是了解SVM的算法的求解了,SVM算法的求解是一个凸优化问题,可以使用QP优化包进行求解,但是Platt提出了SMO算法,能够大大提升SVM模型的求解速度,这一节中主要就学习和掌握SVM算法的求解,会涉及到很多的数学公式,也是看了好久,查阅了好多资料,才从蒙蔽状态慢慢解放出来,然后对照着着比较简单的SMO算法,对照着算法流程,才慢慢变成半蒙蔽状态。

2016-06-03 19:15:15 4750

原创 机器学习(二)--- SVM学习:理论基础理解

SVM是一种应用比较广泛的分类器,全名为Support Vector Machine,即支持向量机,在没有学习SVM之前,我对这个分类器汉字的理解是支持/向量机,学习之后,才知道原名是支持向量/机,我对这个分类器的名字理解是:通过具有稀疏性质的一系列支持向量从而得到一个比较好的分类器,这个分类器在名称里面体现为Machine。下面是我对于学习SVM理论后认为几个需要理解和掌握的知识点函

2016-06-03 00:26:01 4856

原创 Qt(五)--- 文件操作以及实现文件的复制操作并且在目的目录创建相应文件夹

最近想做一个局域网的图书管理的一个应用,希望能够管理本地的电子书资源,同时分享给在同一个局域网的用户们。因此在本地需要建立一个图书的管理目录出来(暂时是这样想的),因此需要对电脑上的资源进行统一的移动和复制,同时将可能以后需要的信息进行保存下来,在Qt中可能设计到相关内容的包含:QFile 的使用QDir 的使用QFileInfo的使用QFileDialog的使用QFile类提供了

2016-05-25 20:59:54 11809 2

原创 Qt(四)--- 事件处理机制以及QLabel的交互实现

在使用QSS给QLabel写关于pressed的属性时,发现无法实现这个属性的处理机制,然后查阅了QLabel的相关文档,发现在Qt中没有实现有关的用户交互接口,在Qt 的官方文档中,原文的内容是:QLabelis used for displaying information in the form of text or an image. No user interaction fun

2016-05-24 17:32:23 4555 2

原创 机器学习(一)--- 监督学习之回归

参考学习资料:http://cs229.stanford.edu/materials.html通过对学习,掌握的知识点包括:什么是 cost fuction      Linear regression的概念Logistic regression的概念============监督学习的引出==============机器学习可以分为两个大类,一个是监督学习(superv

2016-05-14 18:14:44 3340

原创 Qt(三)--- 实现QQ登陆界面头像状态栏的功能

对于QQ登陆界面,可以通过下拉菜单,实现状态的选择,在QQ的头像状态栏需要显示的信息包括:用户的头像以及登陆的状态。这里主要涉及和利用的只是是QMenu以及QAction,同时继承QLabel的类;QMenu的相关知识 QMenu继承于QWidget,包含的Properties有:1、icon:QIcon  2、separatorsCollapsible:bool     Th

2016-05-14 00:07:24 3606 1

原创 机器学习--开始篇

以前接触了一点机器学习的知识,现在准备系统的学习机器学习的知识,然后找了一些资料和网站,准备开始学习,有心的同志们,一起!!!一下是我找到的一些关于机器学习的学习网站和资料:https://www.coursera.org/learn/machine-learning/home/welcome很出名的AndrewNg的MachineLearning的网站,可以到Couresa上

2016-05-12 17:48:28 783

原创 Qt(二)--- 使用Qt完成QQ登录界面的输入文本框的实现

在Qt中,对于QLineEdit而言,是没有menu-indicator的,这个时候要实现像qq登录界面的LineEdit:如下图所示,必须需要customize自己的LineEdit,采取的方法是继承QLineEdit,然后在自己的LineEdit添加自己的属性。首先建立一个Qt Widget Application的工程文件,然后在工程文件中添加c++类:这里我的类名是LogEdit。

2016-04-25 13:53:02 9167 6

原创 数据结构--二叉堆与堆排序

二叉堆的概念二叉堆,BinaryHeap,是二叉树中的常见的一种结构。通常以最大堆和最小堆的形式呈现。最大堆指的是父节点大于等于孩子节点的value值,也就是说对于最大堆而言,根元素是二叉堆最大的元素。最小堆的概念是与最大堆的概念是相似的。

2016-04-24 22:38:04 4809

原创 Qt(一)--- QSS的语法

Qt中的除了进来比较流行的使用qml进行界面的美化外,在早期,也就是4.x版本中,使用得比较多的的就是qss,就如qml是javascipt的变形体一样,qss是css的变形体,当然语法是和css基本一致,然后阅读了Qt的Assitant的帮助文档后,花了两天时间,大致了解了qss的语法,然后尝试用这个尝试着做了一下qq的登录界面,实现了大致的样子,大神们勿喷。(PS:这是初期的样子,先看看效果,

2016-04-23 00:48:45 8922 1

原创 数据结构--二叉树的遍历

二叉树的概念二叉树作为最常见以及最常用的的结构,其特点是对于每一个父节点,最多包含两个节点,因此对于一个二叉树,可以将其分为三个部分,根节点,左子树和右子树。一般来说,存储结构分为线性存储结构和链式存储结构。线性存储结构一般来说是以数组的方式呈现的,其特点是在内存中表现为连续的空间分配。而对于链式存储结构,在逻辑上是有种某种关系,比如逻辑连续,但是在实际物理的内存空间上的分配上,却没有任何的规

2016-04-19 21:22:21 665

原创 数据结构--迭代归并

归并最初的使用在与两个有序表的合并,从而引出对待排序数列的排序。两个有序表的合并在于合并之后,合并的表仍然有序。比如:       有序表(1):1 3 4 4 6       有序表(2):2 3 3 5 8       最后归并的的有序表为:1 2 3 3 4 4 5 6 8      当然,实现两个有序表的实现是比较简单容易的,为了不仅仅实现两张有序表的归并,而是为了用于之后

2016-04-19 13:31:54 1157

原创 数据结构--快速排序

快速排序是一种平均性能比较好的排序方法,它的平均性能是Ο(nlogn)。快速排序的算法思想是:        1、选取待排序记录中的一项作为qvoit,即枢轴,以此作为基准,首先将待排序序列分为两类,一类是比排序序列大的,在基准的右边。一类是比基准小的,在基准的左边,当然这里排序的出发点是从左到右非递减序列。       2、对左边序列重复步骤一的过程;即递归调用函数;

2016-04-15 14:44:26 562

原创 Cgywin的配置

最近在学习Linux下相关的东西,但是在系统上装了双系统,有的时候在windows系统下用着用着的时候,看着Linux相关的书籍,突然要转到Linux系统下觉得很不方便,又想使用Linux下的Bash,make,以及熟悉一下g++,gcc以及gdb的使用,因此就想着能不能在windows系统下在不安装虚拟机的情况下,使用Linux的这些东西呢,于是乎就找到了Cygwin,首先看看Cygwin的官方

2016-04-14 21:28:38 1315

calib_point

功能介绍: 选择图片坐标,注意是坐标是对应原有的图片坐标,与图片的缩放没有关系。即不管放大缩小多少,右下角的坐标一定对应着原始图片的大小。 每选择一个点,确认一次,存入数据。可以快捷键(空格键); 确认两个点后,当前目标已经确认,显示矩形框,同时显示写入信息的数据; 确认数据之后,觉得数据不对,可以撤销当前(还未保存至txt)的数据,一次撤销一个点的数据; 可以直接在界面打开资源管理器,转至txt所在文件夹; 识别文件夹下所有图片,录完当前图片后,点击进入下一张图片。 开发环境:Qt5.5.1+OpenCV2.4.9+VS2010

2017-11-08

qt串口助手

之前写的关于qt实现串口助手博客,有人需要源码,由于当初是为项目需要些,里面有很多不必要的控制,现在重新整理了一份较为纯净的代码,和大家交流学习注意目录不要有中文路径名,尽量在顶层目录下编译,,源博客地址:http://blog.csdn.net/mao19931004/article/details/51852573

2017-01-13

libqxt-对qt控件类的补充

可以应用于qt5版本开发

2017-01-02

自定义滑动栏

通过动画框架实现自定义滑动栏实现,详细可参考博客http://blog.csdn.net/mao19931004/article/details/52304123

2016-08-24

qt实现的简易音乐播放

提供了实现简单音频播放的audioplayer的类,需要看详细介绍的,可以到我的博客http://blog.csdn.net/mao19931004找关于QMediaplayer详解以及简易音乐播放实现的介绍

2016-08-07

图像处理Demo

该Demo主要实现的是利用opencv实现的图像处理的Demo,开发环境是VS2013社区版+opencv2.4.9,系统为64位,已经把有关于opencv的链接库拷贝到Debug目录下,如果缺少有关MFC的链接库,可自行下载或者获取,添加至该目录下获取。上传的原因是博客有人需要参考,因此把该资源上传。可以到我的博客http://blog.csdn.net/mao19931004/article/category/5880125查看有关的相关内容.该Demo主要实现的功能是图像的基本处理包含滤波,边缘检测以及直方图显示,同时可以打开摄像头并截图图片,此外很多功能按键的功能并没有实现。

2016-08-05

简单实现qq登陆界面部分功能

简单实现qq的登陆界面,使用qss以及qt等知识

2016-05-14

二叉树遍历

实现二叉树的层次创建,以及实现二叉树的先序遍历、中序遍历、后序遍历以及层次遍历

2016-04-19

人脸检测-毕业论文

自己亲身做的人脸检测,给的资源分太低,心会太痛,做人脸检测的可以下下来看一下!不敢说绝对是你的菜,但是可以借鉴和参考。

2015-11-01

基于模板匹配的人脸检测实现-MATLAB

本资源是在Matlab平台上实现模板匹配,核心代码包括肤色分割以及模板匹配,肤色分割是通过在YCrCb色彩空间下进行肤色建模,从而实现肤色分割,在肤色分割的基础上实现模板匹配,从而实现人脸检测

2015-10-17

Codeblock教程

codeblock,不错的编译工具,支持c语言编译,但是这个教程版本比较低,是8.02版本的

2013-10-20

空空如也

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

TA关注的人

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