自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

程序人生

大道至简,顺其自然,随缘惜缘而不攀缘

  • 博客(189)
  • 收藏
  • 关注

原创 一个IT文艺青年的生活态度:努力成为这样的人

        人常说,不忘初心,方得始终。然而,初心易得,始终难守。生活中有这样的一个人,不经意间转了行,误打误撞走上了编程的道路,从此开辟了程序人生。一直幻想着所谓的诗与远方,总想出去走走,看不同的景、走不同的路,遇见不同的人...... ,故经常自嘲道——文艺的心,工科的命。不过一直秉着“随缘惜缘不攀缘”的态度来坚守这颗初心,努力践行着对自己的标准,想成为这样的人。     1、工作学习要以...

2016-02-20 16:52:47 1453

原创 Kinect2驱动切换

在开发中电脑上同时装了Kinect2官方驱动,如何来回切换,步骤如下: 从libfreenect2驱动切换到官方驱动: 1、打开设备管理器,找到libusbK USB Devices,右键点击 “Xbox NUI Sensor (Composite Parent)” 设备,并点击卸载,同时勾上卸载其软件驱动选项; .2、扫描检测硬件改动,然后打开官方demo验证即可;从官方驱动切换到li...

2018-05-24 17:25:45 1414

原创 win10下安装PyQt4

Python IDE 我用的是pycharm ,python版本3.5.4,看了官方的安装教程太繁琐,可以直接网上下载PyQt4‑4.11.4‑cp35‑cp35m‑win_amd64.whl,具体版本根据个人实际情况来,python版本以及x系统位数都要对应上即可,下面以我的开发环境为例安装步骤如下: 1、下载PyQt4‑4.11.4‑cp35‑cp35m‑win_amd64.whl后将其放到...

2018-05-13 23:00:13 8462 2

原创 Kinect2性能参数

一、基本参数 RGB:1920 x 1080 @ 30 / 15 FPS(根据环境亮度) Depth:512 x 424 @ 30 FPS、16bit 距离值(mm)、可侦测范围0.5 ~ 4.5M 水平视角:57°,垂直视角:43°; 红外相机:512 x 484,30 Hz FOV: 70 x 60 深度识别范围: 0.5–4.5 meters 1080p 彩色相机 30 ...

2018-05-12 18:34:18 14243 7

原创 通过Depth image计算被测物的深度信息

最近在玩Kinect2,我们可以通过Kinect2采集到深度图像,如何通过深度计算出被测物的深度信息呢?废话少说,直接放代码:import numpy as npimport cv2img = cv2.imread("depth.png")cv2.namedWindow("Image")rows, cols, channels = img.shapeprint(img.sha...

2018-05-12 18:16:02 3815 2

原创 Kinec2第三方驱动Libfreenect安装教程

1、安装vs2015 因为安装vs2015安装时间较长,所以先安装它,自定义安装所需要的模块,最好包含win10 , win8等模块,点击安装即可,然后可以按照步骤安装其他模块。 2、安装CMake 点击安装包,默认安装即可 3、 安装git 安装教程按照即可 4、安装Zadig 点击 Replace Driver 即可,会在设备管理器看到如下图所示: ...

2018-05-12 17:26:43 1663 3

原创 Python开发环境配置

一、Python安装 在官网python官网下载自己所需要的安装版本,比如Python3.6.5安装包。 1、双击exe运行打开选择如下 2、默认,next 3、选中第一项,自定义安装路径,点击Install 4、安装完成 5、验证安装是否成功 cmd ->python弹出以下信息说明安装成功 二、Python IDE pycharmde 安装 进P...

2018-05-12 17:04:11 509

原创 Pyhon利用OpenCV在图片上显示文字及保存

首先查看一下opencv中是如何做的,后来发现opencv提供了在图像上绘制文字。这个函数即是cv::putText()。 void cv::putText( cv::Mat& img, // 待绘制的图像 const string& text, // 待绘制的文字 cv::Point origin, // 文本框的左下角 ...

2018-05-05 15:39:13 21811

原创 关于error LNK2001与error LNK2019 bug解决办法

调试程序遇到一堆error LNK2001与error LNK2019 bug,最后将问题解决,现将解决办法记录下来以便后续查看。 1>libcpmtd.lib(locale.obj) : error LNK2001: 无法解析的外部符号 _CrtDbgReportW 1>libcpmtd.lib(wlocale.obj) : error LNK2001: 无法解析的外部符号 _C...

2018-05-05 15:24:24 5688

原创 CMake Error: CMake was unable to find a build program corresponding to "MinGW Makefiles". CMAKE_MAK

Cmake 编译OpenCV3.1.0过程中出现如下错误: CMake Error: CMake was unable to find a build program corresponding to “MinGW Makefiles”. CMAKE_MAKE_PROGRAM is not set. You probably need to select a different bui...

2018-03-25 19:53:53 4018

原创 数字图像相关(DIC)原理与应用

数字图像相关技术(DIC)利用双目立体视觉技术,通过追踪物体表面的散斑图像,实现变形过程中物体表面的三维坐标、位移及应变的测量,主要应用于全场应变、变形、位移、振幅、模态等信息的测量和获取。DICM:利用相机拍摄变形前后被测平面物体表面的数字散斑图像,再通过匹配变形前后数字散斑图像中的对应图像子区获得被测物体表面各点的位移。物体变形前后,其表面上的几何点的移动产生了位移,通过相关的算法,确

2018-01-31 08:41:36 27731 9

原创 qRegisterMetaType用法总结

如果要在Qt信号槽中使用自定义类型,需要注意使用qRegisterMetaType对自定义类型进行注册,然在不跨线程时使用自定义类型signal/slot来传递,没有什么问题;一旦涉及跨线程很容易出错,回想下信号槽的作用就是用来对象与对象之间通信的,因此建议在使用时利用qRegisterMetaType()将自定义类型进行注册,即首先调用qRegisterMetaType函数,语句类似 qRegi

2017-12-23 10:19:42 25723 4

原创 qobject_cast用法总结

qobject_cast()动态转换QObject类的类型。qobject_cast()函数和标准C++的dynamic_cast()功能类似,只是其不需要RTTI的支持,而且可以跨越动态连接库的边界。它尝试将它的参数cast成尖括号内的对象类型,如果对象是正确的类型(运行时决定)则返回非零,否则返回0,说明对象类型不兼容。T qobject_cast ( QObject * ob

2017-12-23 10:12:28 17130

原创 QString、String、char*之间转换总结

一、QString与String1)QString转Stringstring a; QString b; a= b.toStdstring(); //jwhu 括弧内多余2)string转QStringstring a; QString b; b= QString::fromestdstring(a); 二、QString和char*1)QS

2017-12-23 09:59:55 13563

原创 Opencv中Mat、IplImage、 CvMat之间转换总结

1、Mat转IplImageMat m; IplImage* transIplimage = cvCloneImage(&(IplImage) m); 2、IplImage转MatIplImage* transIplImage; Mat m = cvarrToMat(transIplImage,true); 3、CvMat与IplImage相互转换

2017-12-23 09:51:51 405

原创 关于Qt中LOGO与窗口图标显示问题的总结

1、Qt生成release版本logo无法显示问题解决办法:1)准备好ico文件,自定义所需要命名,如my.ico,后续名字保持一致即可;2) 通过新建文本文件,,在文件内填写 IDI_ICON1 ICON DISCARDABLE "my.ico" ,然后将文本另存为文件后缀名为rc文件myico.rc;3) 在项目pro后缀名的文件中,添加代码,如下RC_FILE += my

2017-12-18 13:16:50 4605

原创 数字信号处理——图像篇

图像的频率是表征图像中灰度变化剧烈程度的指标,是灰度在平面空间上的梯度。如:大面积的沙漠在图像中是一片灰度变化缓慢的区域,对应的频率值很低;而对于地表属性变换剧烈的边缘区域在图像中是一片灰度变化剧烈的区域,对应的频率值较高。傅立叶变换在实际中有非常明显的物理意义,设f是一个能量有限的模拟信号,则其傅立叶变换就表示f的谱。从纯粹的数学意义上看,傅立叶变换是将一个函数转换为一系列周期函数来处理的。从物

2017-11-30 12:25:38 15168

原创 工业相机SDK接口使用总结

相机调用          我们利用相机采集图像,首先要对相机进行相关参数设置及控制,这需要对相机的SDK包比较了解,一般相机厂家都会提供相机SDK,其中包含用户手册和调用Demo,这些都大大降低了调用门槛,提高了二次开发用户的效率。目前用过Balser、海康、大华等相机,其实都是一个套路,都是按照下面几个步骤进行的。             1)枚举设备         

2017-10-09 16:10:02 20469 1

原创 关于Qt设计师中相关设置问题

在通过QT设计师设计界面时,经常会遇到没有设置布局问题,如下图显示所示,刚开始都会对这个有所疑问,后来才知道是没有设置全局解决办法:选中SettingWidget,点击垂直或者水平(这里选中垂直布局),确认之后红色无效标识消失

2017-09-13 19:45:09 879 1

原创 光学三角法知识点总结

光学三角测量法是一种最常用的一种光学三维测量技术,以传统的三角测量为基础,通过待测点相对于光学光学基准线偏移产生的角度变化计算该点的深度信息。根据具体的照明方式的不同,三角法可以分为被动三角法和主动三角法。  1)双目立体视觉          双目立体视觉属于被动三维测量技术,优点在于其适应性强,可以在多种条件下灵活测量物体三维信息。但是被动三维测量技术需要大量相关匹配运算和较复杂的空间

2017-09-12 20:17:31 7467

原创 模态分析知识点总结

ODS(Operating Deflection Shape):工作状态下变形分析,不进行参数识别,当模态不太密集时,可通过频响函数或互功率谱直接观察模态的振型。也可以通过时域波形直接显示结构的实际变,要求所有测量点的数据同步测量。特点:最直接地显示结构工作状态下的实际变形。基于时域的ODS:1)按照时间历程、主应力大小、互相关函数、脉冲响应波形自由衰减波形和响应波形的ODS;2)

2017-09-02 10:02:10 8616 1

原创 数字信号分析——窗函数

1、基本定义         为了减少频谱能量泄漏,可采用不同的截取函数对信号进行截短,截断函数称为窗函数,简称为窗。         信号截断以后产生的能量泄漏现象是必然的,因为窗函数w(t)是一个频带无限的函数,所以即使原信号x(t)是有限带宽信号,而在截短以后也必然成为无限带宽的函数,即信号在频域的能量与分布被扩展了。又从采样定理可知,无论采样频率多高,只要信号一经截短,就不可避免地

2017-09-01 09:30:59 5080 1

原创 关于VS2013无法加载解决方案中项目问题

今天在VS2013打开之前的项目,提示无法加载解决方案中的项目,导致项目无法打开,于是查一下解决办法,记录下来以备后用。解决方法:        1、关闭VS;        2、去C:\Users\\AppData\Local\Microsoft\VisualStudio\12.0\ComponentModelCache文件夹下删除所有文件及文件夹;        3、重新打开V

2017-08-28 09:28:11 6825 3

原创 数字信号分析——基础知识点总结

前几篇对数据采集相关知识点进行了总结,从采集卡选型以及模拟信号采集进行相关介绍,通过采集卡进行ADC,就能获取到电脑所能识别的数字信号,接下来就对获取的数字信号进行分析。实际应用中周期性模拟信号很复杂,很难以一个简单的正弦曲线来描述。傅里叶分析法可将任意复杂的波形分解为简单的正弦、余弦或复指函数之和。                             正弦波波形表达式F(t)

2017-08-26 11:11:31 6910

原创 数字信号处理——振动篇

峰峰值:波峰与波谷的差值,常用来评价位移;均方根值:有效值,常用来评价速度、加速度;FFT点数:做一次FFT变换所采集的点数;采样时间:FFT点数/采样率;频率分辨率:采样时间的倒数,采样率/FFT点数;时域:均方根值,峰峰值;频域:测速度——显示幅值谱RMS测位移——显示幅值谱peak四种频谱形式:幅值谱peak:反映信号谐波的单峰值;幅值谱RMS:反

2017-08-26 10:56:49 8801

原创 振动测量相关技术总结

多普勒激光测振:单点测量,无法满足大视场、多点测量扫描多普勒激光测振:能满足一定视场、多点测量;高精度宽频带;缺点:视场仍有一定限制,其视场范围与扫描振镜偏转角度有很大关系;激光测振:目前国外polytec做的比较好视觉多点测振:能满足大视场、多点测量,大视场可通过鱼眼镜头解决;缺点:高速相机价格昂贵,采集需要高速存储,无法在线实时处理,需要缓存在电脑或者相机上,这对电

2017-08-26 10:52:28 1835

原创 激光测振原理总结

激光多普勒测振仪原理:基于光学干涉和多普勒频移效应。1、光学干涉2、多普勒频移效应假设两束光强分别I1和I2的想干光束相互重叠,干涉条件                         I=I1+I2+2√((I1*I2)cos⁡[2π(f1-f0)/) λ]传感器通过高通滤波,即可获得强度变化率f1-f2即∆f,在传感器表面产生干涉

2017-08-26 10:46:20 8460

原创 关于应用程序无法正常启动(0xc000007b)问题的解决办法

今天在调试一个相机SDK调用程序时遇到这样的问题:debug win32下运行出现以下错误        看网上解决办法大多数是DIrectx9.0修复或者安装之类的,但试了一下还是不行,最后尝试将win32改为X64,将环境重新配置运行成功。原因有可能程序是64位的,win32下无法编译64位程序。那么win32与X64的区别?32bit process在32位和64位os上都可

2017-08-26 10:05:33 8469

原创 C/C++基础知识点总结

if(condition1) /*如果满足条件1*/{}else if(condition2)/*否则,如果满足条件2*/{}else/*否则*/{}1、if, else if, else的用法if,else if都需要接判断表达式,else不需要判断表达式。使用else if和else,必须紧跟在if之后,形参if-esle if组或if-else对。 没有对应的if

2017-08-26 09:57:50 545

原创 遥远的救世主

不管是文化艺术还是生存艺术,有道无术,尚可求;有术无道,止于术。同一事实,不同人却得出不同结论,这跟一个人的观念和觉悟有关,跟个人的思维方式和修为境界有关。

2017-08-20 19:26:34 9945

原创 数据采集知识点总结

一、采集卡的选择1、通道数        通道数选择根据需求来选择,看实际应用过程中需要多少AI/AO或者DI/DO的个数来定。通道数对于采用单端和差分两种输入方式的设备,模拟输入通道数可以分为单端输入通道数和差分输入通道数。        在单端输入中,输入信号均以共同的地线为基准。这种输入方法主要应用于输入信号电压较高(高于1 V),信号源到模拟输入硬件的导线较短(低于15 ft)

2017-08-19 13:18:00 6259

原创 Boost库——signals2的用法总结

signals2与signals的区别:           signals是Boost库中另一个信号/插槽库,实际上signals2的实现是基于signals的。signals2与signals最大的区别是具有线程安全,能够用于多线程环境,而且不需要编译就可以使用。signals2在结构、接口、设计原理等许多方面都模仿了signals,但也有一些很多变化,例如默认信号调用返回是一

2017-08-18 13:21:52 6466

原创 Boost库入门

Boost库的头文件与我们平常所用的头文件(*.h)或者C++标准库头文件(没有后缀名)不同,它是把C++类的声明和实现放在了一个叫做.hpp文件中。之所以这么做,一是与普通C头文件区分开,还有一个重要的原因是使Boost库不需要预先编译,可以直接引入程序员的工程即可编译链接,方便库的使用。最后有一个原因就是C++编译器的限制,许多编译器还不支持C++标准提出的模板分离编译模式(export关键字

2017-08-18 13:19:06 439

原创 命名空间namespace的作用

说起命名空间的,我们经常会用到这样的语句:using namespace std;  using namespace cv;using namespace boost等等,这些都是一些标准库或者第三方库的命名空间。在实际应用过程中,特别是自定义的类或者函数时,我们为了区分开一些标准库或者第三方已经存在的函数或者变量重名而出现冲突,这时候就需要我们自定义一个命名空间将其区分开来。比如有两个人都叫张三

2017-08-08 10:39:15 3241 1

翻译 QStandardItemModel的用法

查看Qt帮助文档,将英文翻译过来以便后用QStandardItemModel q标准化模型类提供了一个用于存储定制数据的通用模型。 q标准化模型可以作为标准Qt数据类型的存储库。它是模型/视图类之一,也是Qt模型/视图框架的一部分。 q标准化模型提供了一种经典的基于项目的方法来处理模型。q标准化模型提供了q标准化模型中的项目。 q标准化模型实现了QAbstractItemModel接口,这意味

2017-08-03 13:47:36 29165 2

原创 漫话数据采集之杂谈

数据采集是一个比较宽泛的概念,而信号就是数据中的一类。其中信号又可以细分图像、视频、声音、振动等。就拿个人经常接触的图像与振动为例。不管做图像采集还是振动信号采集,都需要满足采样定理,简单说就是采集频率是信号最高频率的2.56倍,实际应用中为了防止丢帧,一般选择是5~10倍。比如在一个实际应用场景中,想利用视觉采集振动物体的图像,这中情况下在选择相机的帧率的时候一定要考虑到被测对象的振动频率,否则

2017-07-29 11:09:58 502

原创 Qt之信号槽机制

对于MFC,我们都知道其主要通过消息映射机制,利用与控件ID的捆绑,映射到相关的回调函数去实现相关的功能。Qt最大的特色就是其信号槽机制,可以把互不相关的对象绑定在一起,从而实现对象之间的通信。一、概念1)信号     当对象改变其状态时,信号就由该对象发射 (emit) 出去,而且对象只负责发送信号,它不知道另一端是谁在接收这个信号。这样就做到了真正的信息封装,能确保对象被当作一

2017-07-28 09:50:04 320

原创 关于软硬结合时的思考

最近在搞一各NI 9239采集卡采样率与实际不符的问题,由于接手别人的工作,资料也不全,刚开始将其与其他采集卡一样对待,殊不知进入了误区,昨天晚上去官网论坛读取相关英文资料,进行公式推导终于找到问题答案。  回想过去与硬件打交道的经验,有必要总结一下以供后续之需。对于设备开发,做软件经常要与硬件打交道,经过一系列的工作,感觉解决办法都是一个套路。比如说相机,你不要要熟悉其硬件相关参数,做为软件

2017-07-19 10:14:10 867

原创 QTSingleApplication的用法

最近研究代码遇到QTSingleApplication,于是上网查了一下其用法,发现其功能还蛮好的,总结一下以备后续使用。QTSingleApplication,是Qt官方提供的,用于实现应用程序只启动一个实例,并在启动时向另一个实例通信(依赖于QtNetwork模块)默认情况下,收到消息后会自动激活自身窗口 。QtSingleApplication依赖于QtNetWork模块

2017-07-10 10:08:24 2396

原创 如何在VS中调用库文件

如何调用库文件1)静态库.lib    将.h文件和.lib文件放在项目中,然后利用如下代码实现添加 #include“*.h” #pragma comment(lib,"*.lib")      或者将h文件与lib文件放在一个文件夹中,在属性-->链接器-->输入-->附加依赖项中添加lib文件,若是调用第三方库,则需要在VC++目录中将头文件和库文件分别包含。2)动态

2017-06-28 14:46:02 2408

空空如也

空空如也

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

TA关注的人

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