自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(41)
  • 收藏
  • 关注

原创 live555传输实时h264视频流和mp3音频流

主要是利用live555的rtsp服务器发送实时视频和音频流,并扩大视频buffer的容量来防止视频帧较大时出现数据丢失的问题。h264的实时视频流live555的h264视频流是参考https://blog.csdn.net/caoshangpa/article/details/53200527主要是创建服务器的时候 sms->addSubsession(H264VideoFi...

2019-10-09 12:35:30 4181 9

原创 live555的rtsp客户端testRTSPClient代码分析

在做rtsp流媒体传输过程,所以去了解了live555的客户端demo,testRTSPClient。为了解testRTSPClient,需要大致清楚rtsp的协议,配合抓包知道RTSP的流程,便于我们清晰的了解testRTSPClient的整个过程。抓包使用wireshark。抓包分析可以参考https://www.jianshu.com/p/409f20b7e813。test...

2019-10-01 23:21:22 1053

原创 pyinstaller打包出错 numpy.core.multiarray failed to import

工程使用pyinstaller3.5打包,工程使用到了tensorflow2.0,opencv-contrib-python 4.1,numpy1.6,打包后运行exe提示与numpy相关的错误: File "d:\project\handwriting\ocrcn_tf2\venv\lib\site-packages\PyInstaller\loader\pyimod03_...

2019-09-06 19:07:10 2982 3

原创 使用zinnia库进行中文手写识别

研究手写识别的时候看到了zinnia,就进行了测试,存在问题是zinnia书写依赖笔画顺序,而且没有找到更多的可以用于训练的数据。zinnia介绍 zinnia是一个基于svm的开源的手写识别库。zinnia简单地接收用户笔划作为一系列坐标数据,并输出按SVM置信度排序的n个最佳字符。为了保持可移植性,Zinnia没有任何渲染功能。此外,Zinnia还提供训练模块,使...

2019-08-20 15:04:20 2295 5

原创 github上传大于100M的单个大文件

git push的时候,当单文件大于50M会出现警告,单文件大于100M会出现错误,导致push失败。 大文件需要单独的上传,所以先对小文件进行push。但如果此时已经commit了大文件,则需要把这些超过100M的大文件从本地版本库中移除,使得Push小文件可以成功。 此部分内容可参考:https://www.jianshu.com/p/6d...

2019-07-19 22:05:53 2739

原创 使用opencv实现基于Haar特征的人脸检测

此文章主要是学习的记录。使用opencv的版本是 3.4.6。实现了图片的人脸检测及人的眼睛、鼻子和嘴巴的检测。里面使用的窗口显示相关的代码都是opencv的函数。人脸检测 openCV的人脸识别主要通过Haar特征分类器实现的,haar特征分类器是一个xml文件,文件描述了检测物体的Haar特征值。Haar分类器需要通过大量的数据来训练...

2019-07-08 14:52:14 2613

原创 C++11的智能指针

c++11摒弃了auto_ptr,支持 shared_ptr,unique_ptr,weak_ptr,包含在头文件<memory>中。 智能指针是利用了一种叫做RAII(资源获取即初始化)的技术对普通的指针进行封装,用是防止忘记调用delete释放内存和程序异常的进入catch块忘记释放内存。当超出了智能指针类的作用域是,类会自动调用析构函数,析构函数会自...

2019-06-14 00:18:25 475

原创 windows服务程序启动外部exe程序

目的是service中检查某个exe是否运行了,没有则启动程序。 启动的程序有界面。网上不少是使用ShellExecute来实现的,发现有问题,在win7下实现之后,service启动该程序时会出现一个提示,点击查看会切换到一个奇怪的界面来运行程序。这是因为已经调到session0了,如下图所示: 出现这个...

2019-06-06 00:07:48 9973 5

原创 repaint与update的区别

repaint会立刻调用paintEvent重绘,而update是把绘制事件加入主事件循环。Qt文档:[slot] void QWidget::repaint()Repaints the widget directly by calling paintEvent() immediately, unless updates are disabled or the widget i...

2019-05-31 09:39:10 1164

转载 C++的volatile关键字的作用以及常见的误解

近期看到C++标准中对volatile关键字的定义,发现和java的volatile关键字完全不一样,C++的volatile对并发编程基本没有帮助。网上也看到很多关于volatile的误解,于是决定写这篇文章详细解释一下volatile的作用到底是什么。编译器对代码的优化在讲volatile关键字之前,先讲一下编译器的优化。int main() { int i = 0...

2019-05-05 22:40:35 1832

转载 do{}while(0)在宏定义中的作用和消除goto语句

目录宏定义中使用do{}while(0)的好处do...while(0)消除goto语句宏定义中使用do{}while(0)的好处do{}while(0)的格式:#define MACRO_NAME(para) do{macro content}while(0)总结了以下几个原因:1,空的宏定义避免warning:#define foo() do{}whil...

2019-05-05 22:30:05 994

原创 Qt的TCP粘包分包

粘包只可能出现在流传输中,TCP是基于流传输的,而UDP是不会出现粘包,因为UDP是基于报文的,也就是说UDP发送端调用几次write,接收端必须调用相同次数的read读完,每次最多只能读取一个报文,报文与报文是不会合并的,如果缓冲区小于报文长度,则多出来的部分会被丢掉。TCP不同了,它会合并消息,并且以不确定方式合并,这样就需要我们去粘包处理了,TCP造成粘包可能是发送端也...

2019-04-30 23:42:54 3288

原创 Qt两种线程方式的实现与优缺点对比(及信号槽连接方式)

Qt的线程实现主要两种方式:子类化QThread和对象moveToThread。子类化QThread实现方法: 继承QThread 重写run 其它线程里使用start函数来启动此线程。缺点线程中的对象必须在run函数中创建。线程无法接收信号,只能发送信号。对象moveToThread实现方式:新建类假设为Worker,在类的槽函数里实现逻...

2019-04-27 22:07:50 5141 4

原创 Qt编译debug和release版本--CONFIG(debug,debug|release)

在pro文件里添加:INCLUDEPATH += depend/opencvINCLUDEPATH += depend/opencv2debug {LIBS += -lopencv_core2413d}release {LIBS += -lopencv_highgui241}如果打开看项目生成的makefile文件,会发现Makefile.Debug和Makefi...

2019-04-27 16:29:55 9110 1

原创 客户端七牛方式上传文件

上传流程在七牛云存储中,整个上传流程大致分为以下几步: 业务服务器颁发上传凭证给客户端(终端用户) 客户端凭借上传凭证上传文件到七牛 在七牛获得完整数据后,发起一个 HTTP 请求回调到业务服务器 业务服务器保存相关信息,并返回一些信息给七牛 七牛原封不动地将这些信息转发给客户端(终端用户) 注意:回调到业务服务器的过程是可选的,它...

2019-04-25 00:38:40 1682

原创 使用PortAudio获取音频和lame库压缩成mp3

PortAudioPortAudio是一个免费、跨平台、开源的音频I/O库。得到的数据是PCM数据。重要参数:sampleFormat:精度(采样宽度),一秒钟内对声音信号的采样次数。sampleRate:音频采样率 ,比如16bit,表示可以用2的16次方=65536种数据来区分一个音符。framesPerBuffer : 回调的点数,采集到多少个点调用回调函数。使...

2019-04-18 00:07:53 1060

原创 C++的四种强制类型转换

前言 C风格的强制类型转换(Type Cast)很简单,不管什么类型的转换统统是:TYPE b = (TYPE)a。如int a=1;char b=(char)a; 这种转换适用于面向过程的没有类的概念的c语言的转换,然而这样的转换符也能随意地应用于类和类的指针,没有安全检查。 C++风格的类型转换提供了4种类型转换操作符来应对不同场合的应用:...

2019-04-16 00:48:16 581

原创 静态变量的方式实现的单例类和单例模板

分析 在C++11标准中,要求局部静态变量初始化具有线程安全性。描述(在标准草案的6.7节中):such a variable is initialized the first time control passes through its declaration; such a variable is considered initialized upon the comp...

2019-04-14 23:14:50 916

原创 Centos6 安装Python3.6及设置对应版本pip的简单方式

Python3其中已经是默认安装了pip及setuptools,所以安装完Python后创建pip3对应的软链接,就可以使用 pip install xxx,网上太多的教程重复安装了pip。部分文章按安装Python2的安装方式写了 Python3 的安装方式,比如安装setuptools等,反而容易出现了各种问题。1.提前安装需要的环境yum install openssl-de...

2019-03-24 18:32:36 2894

原创 改文件导致 could not open session

修改/etc/security/limits.conf文件 root soft nproc unlimited root hard nproc unlimited root soft nofile unlimited root hard nofile unlimited 导致出现问题重新登录后,无法登陆,提示 could not open sess...

2019-03-08 09:21:22 2028

原创 qt5 信号槽新语法遇到重载的问题

假如使用了qt5 信号槽新语法: QObject::connect(&amp;newspaper, &amp;Newspaper::newPaper,&amp;reader, &amp;Reader::receiveNewspaper);信号有重载的时候,比如两个信号void newPaper(const QString &amp;name, const QDate ...

2019-03-07 15:11:50 2316 1

原创 Jenkins slave节点的搭建

Jenkins的分布式构建,在Jenkins的配置中叫做节点,分布式构建能够让同一套代码或项目在不同的环境(如:Windows和Linux系统)中编译、部署等。 节点服务器不需要安装jenkins(只需要运行一个slave节点服务),构建事件的分发由master端(jenkins主服务)来执行。一 添加节点点击系统管理-&gt;节点管理,新建节点设置节点名称...

2019-03-07 13:47:10 2812

转载 使用 libevent 和 libev 提高网络应用性能——I/O模型演进变化史

构建现代的服务器应用程序需要以某种方法同时接收数百、数千甚至数万个事件,无论它们是内部请求还是网络连接,都要有效地处理它们的操作。有许多解决方案,但事件驱动也被广泛应用到网络编程中。并大规模部署在高连接数高吞吐量的服务器程序中,如 http 服务器程序、ftp 服务器程序等。相比于传统的网络编程方式,事件驱动能够极大的降低资源占用,增大服务接待能力,并提高网络传输效率。...

2019-03-06 22:18:21 678

原创 It appears that your reverse proxy set up is broken解决

提示错误:It appears that your reverse proxy set up is broken.Jenkins反向代理设置被破坏了。解决:系统管理-&gt;系统设置-&gt;Jenkins Location并找到Jenkins URL,填入浏览器打开jenkins的ip和端口ps:确保端口值与计算机上Jenkins文件夹中jenkins.xml...

2019-03-04 18:57:01 11806 5

原创 Jenkins安装插件

安装Jenkins的时候选择默认安装,中间出现了问题,忽略。安装完Jenkins后,打开系统管理,报了一堆错误:可以看到缺少了:structs v1.17 和 workflow-durable-task-step v2.4解决:在 系统管理–&gt;管理插件–&gt;Availiable 中找到需要的插件,下载。如果发现插件已经安装了,那需要重启Jenkins来生效...

2019-03-03 17:50:22 1348

原创 Jenkins服务搭建和使用gitlab与nsis打包

目录一、安装jenkins二、新建项目三、使用nsis打包四、添加存档文件一、安装jenkins这里使用msi安装包的方式。进入官网http://Jenkins-ci.org/下载,推荐下载LTS长期支持版本安装完自动打开浏览器,提示正在代开jenkins,之后,出现下面界面按照提示在对应的文件找到密码,输入后会出现下面提示安装插件的页面,这里选...

2019-03-03 15:04:11 1466

原创 QML键值对(类似QMap)

需要在qml里使用像QMap这样的容器,本来想用js里的Map对象,发现qml没有这个类型。后面使用了下面的方式来实现://初始化var taskMap = {}// var taskMap = {0:'a',1:'b'}//添加键值对taskMap[1] = 1taskMap[2] = 'b'taskMap['c'] = 3//删除delete taskMap[1]...

2018-12-17 23:53:14 4292

原创 Qt解析JSON数组

JSON 数组在中括号中书写,以逗号分隔。JSON 中数组值必须是合法的 JSON 数据类型(字符串, 数字, 对象, 数组, 布尔值或 null)。比如:[ { "id": "1", "name": "aa" }, { "id": "2", "name": &quot

2018-12-08 13:15:12 10452 2

原创 Qt窗体透明(主窗体与子窗体)

一、主窗体与子窗体全透明    setWindowOpacity(0.5);setWindowOpacity(0.5);    取值范围为:0.0 - 1.0,默认值为1.0,全透明为0.0,不透明则为1.0。 二、主窗体透明(子窗体不透明)主窗体采用背景色。在Qt5.6下:发现要把主窗体设置为无边框才可以生效,否则没有透明效果。Qt::WindowFlags ...

2018-12-05 21:47:22 3282

原创 QtQuick.Controls 2与 QtQuick.Controls的区别和使用

混合使用       直接在代码中同时调用QtQuick.Controls 2模块和QtQuick.Controls 模块会出错,因为只能识别到一个版本的控件,会出现无法识别QtQuick.Controls 2的属性或QtQuick.Controls中的style的错误,解决方法:1.对其中一个进行使用到模块进行类型重命名,然后再调用其中的控件,如:import QtQuick.Con...

2018-12-04 22:44:03 6822

原创 QML的SwipeView控件去除滑动效果

SwipeView默认是带滑动效果的,在做app主页的导航界面,不想让它有滑动效果。 Customizing Qt Labs Controls (使用的是Qt5.6)里提到:SwipeView can have a visual background item. The navigation is implemented by the content item.SwipeView由...

2018-12-03 21:05:44 3647 5

原创 Windows获取系统托盘图标

        对于Win7系统,程序的托盘图标最终是放置在和XP一样的ToolbarWindow32工具条窗口,但是有两个地方,同样是ToolbarWindow32工具条窗口,父窗口是不一样的。在右下角可见区域,ToolbarWindow32工具条窗口的父窗口是SysPager窗口,遍历方法同XP一样。对于掩藏的ToolbarWindow32工具条窗口,必须通过点击桌面右下角的可见区域左边的...

2018-12-01 18:50:17 3369 1

原创 Windows获取状态栏的窗口及图标

 实现代码目录实现代码说明参数:GW_OWNER  获取图标的方法Qt转换HICON为QPixmap写回调函数://获取到一个窗口就会调用一次BOOL CALLBACK EnumWindowsProc(HWND hwnd, LPARAM lParam){ /* * Remarks The EnumWindows funct...

2018-12-01 00:27:04 4350 5

原创 JS可变参数使用

假设使用函数test(0,1,2) 如果函数原型为:function test(data){console.info(data)console.info(arguments.length)for(var i = 0; i&lt;arguments.length; i++)console.info(arguments[i])} 输出 0,3,1,2,3...

2018-11-29 20:26:36 4202

原创 postman传数组和设置Basic Auth

传数组需要注意json有无错误提示,可以使用json在线检验一下。数组的最后一个变量后面是没有逗号的,key使用的是双引号。 Basic Auth 认证auth=HTTPBasicAuth('appkey', 'appsecret') ...

2018-11-28 21:39:04 4257 3

原创 qss对QComboBox的Popup窗口的item的样式修改无效的解决方法

       按照qt帮助里的例子使用qss对QComboBox样式修改时,发现其Popup窗口的item的样式根本没反应。网上找了些方案。1.qss不使用QComboBox QAbstractItemView::item,而是直接使用QComboBox::item,无效。 2. 改变其默认的delegate:在代码里添加 QStyledItemDelega...

2018-11-28 21:30:56 2792

转载 QML Profiler分析QML程序性能

对于一个程序的开发,性能优化是开发中的一个重要步骤。我们肯定不希望开发出来的程序表现出卡顿,最好是处处流畅,丝滑般的体验。对于C++程序,我们有很多方法可以做性能优化,例如Visual Studio Profiler。而对于QML(QtQuick)程序,我们可以选择QML Profiler,这是QtCreator的一个功能。那么QML Pro...

2018-10-30 23:39:26 734

原创 Python 写windows service 及 start service 出现错误 1053:服务没有及时响应启动或控制请求

主要是记录1053这个错误,花了写时间找到解决方法。目录安装pywin32实现1053错误安装pywin32实现widows service 需要借助第三方模块pywin32,安装方式:打开cmd命令提示符, pip install pywin32,之后看到success说明安装成功,pip list 可以看到pywin32是否已安装。参考https://jingy...

2018-10-26 16:34:29 18547 5

原创 QSetting使用及读写中文

简述使用QT QSettings读写配置文件,来保存程序的初始值。在qt 5.9.3下使用的情况。简单使用//1.创建QSettings(QCoreApplication::applicationDirPath()+"/config.ini", QSettings::IniFormat, this);//2.更新值 // key,valuesettings-&gt;se...

2018-10-20 01:01:07 6858 1

原创 qInstallMessageHandler把输出信息写入文件和显示在调试窗

           qInstallMessageHandler来实现输出详细日志,输出文件名,行号,所在函数及事件,并写入文件。最后调用系统原来的函数,使信息像之前一样输出到调试窗口,便于开发。 源码QtMessageHandler gDefaultHandler = NULL;//在其它地方调用qInstallMessageHandler设置新的输出函数,但保存原来的函数...

2018-10-20 00:38:40 2676 2

空空如也

空空如也

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

TA关注的人

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