自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 ubuntu第一个PCL程序

效果图代码

2021-04-13 16:47:39 260

原创 ubuntu安装PCL库步骤

必须按顺序安装#源码安装vtkwget http://www.vtk.org/files/release/7.1/VTK-7.1.0.tar.gztar -xf VTK-7.1.0.tar.gzcd VTK-7.1.0 && mkdir build && cd buildcmake ..make sudo make install#安装必要的依赖sudo apt updatesudo a...

2021-04-13 14:47:15 364

原创 ubuntu创建第一个Qt程序的总结

昨天安装好Qt后,很简单的就创建了一个Qt程序。下班的时候,Ubuntu更新,我就没等他更新完就出去了。第二天过来,发现Ubuntu启动不了了,重启几次也没有用。没办法,之后把之前的快照打开,由于快照还是很纯净的时候保留的,所以什么插件都没有安装。Ubuntu可以正常启动后,第一件事就是从新下载安装Qt,安装后,创建一个程序,出现以下问题:是的,没有合适的编译器(g++),一开始以为安装Qt这些是安装的,查了一下发现没有没办法,只好安装了。安装完成后,Qt会自动加载这些编译.

2021-04-09 11:06:58 267

原创 在ubuntu上安装qt

1.上网下载Q't

2021-04-09 08:49:26 1729

原创 Qt插件应用

对于一个大型软件系统来说,实现plugin是一件很美妙的事情,一个成功的plugin系统可以使软件增色不少。Plugin最大的功能是在一定程度内提高了软件的灵活度和可扩展性。一种是高等级的plugin。其实说白了就是已经确定interface的Qt本身的plugin;另一种是低等级的plugin。就是该plugin的interface也需要程序员自己编写从编程的角度,重点还是OOP。所谓的plugin,其实就是一些按照特定interface写成的子类。该Interface必须是虚基类,且所有函数(除

2021-02-20 17:35:03 199

原创 动态库和静态库对比

静态库: 1.静态库中的.lib叫做静态库,本身就包含了实际执行代码、符号表等等; 2.在链接阶段将汇编生成的目标文件.o与引用库一起链接打包到可执行文件中,可简单看成(.o或者.obj文件的集合); 3.对函数库的链接是放在编译时期完成的; 4.程序在运行时与函数库没有瓜葛,移植方便; 5.浪费空间和资源;动态库:(Dll,不可执行文件) 1.动态库中的.lib文件叫做导入库,对于导入库而言,其实际的执行代码位于动态...

2021-02-19 14:52:41 185 2

原创 C++11 新特性

1. std::function<> :函数模板类(是一个类),生成的是类对象,它代表的是一种类型的函数对象,这些对象可以当做指针使用,让它们指向不同的函数, 然后就可以利用这些对象执行函数的功能了,它不是指针对象,是实实在在的对象,但是功能是指针;2.std::bind :是函数模板(是一个函数);3.std::unordered_map:无序关联容器unordered_map。unordered_map是C++11正式加入的对hash_map的官方实现(之前标准C++没有hash

2021-01-06 15:53:22 100

原创 QT 多线程使用moveToThread开启,暂停的问题

在使用moveToThread创建线程时,开启和暂停的工作都在具体的QObject类完成,一般通过信号槽调用来开启和暂停函数;如果使用一般方法连接信号槽,如下:这样会出现开启了线程,暂停不了的情况,原因可能是,资源被线程占用,暂停信号没有到达不了槽函数;我们可以使用Lambda:相当于接收到信号,越过了槽,直接调用暂停函数;工作类:具体的工作内容UI类:创建,控制,暂停线程...

2020-12-24 18:03:02 1750 2

原创 C++ Lambda与connect

Lambda简介:c11新特性中加入了lambda表达式,所以Qt5.0 也支持,需在.pro文件中加入 CONFIG+=c++11;Lambda函数也就是一个函数,它的语法定义如下:[capture](parameters) mutable ->return-type{statement}1.[capture]:捕捉列表。捕捉列表总是出现在Lambda函数的开始处。实际上,[]是Lambda引出符。编译器根据该引出符判断接下来的代码是否是Lambda函数。捕捉列表能够捕捉上...

2020-12-24 14:53:12 785

原创 halcon形态学知识点

1.gray_erosion_shape (Image, ImageMin, 15, 15, 'rectangle');2.gray_opening_shape (Image, ImageOpening, 7, 7, 'octagon'),MaskShape的参数值“octagon”表示等边八角形遮罩,它是圆形结构的合适近似值。在图像的边界处,灰度值被镜像;3.dilation_rectangle1 (Points, RegionDilation, 30, 30)4.opening.

2020-12-11 15:39:08 613

原创 halcon色彩空间转换的时间差异

有2两种方法可以进行色彩空间转换:方法一:decompose3 (Image, Image1, Image2, Image3), trans_from_rgb (Image1, Image2, Image3, ImageResult11, ImageResult21, ImageResult31, ColorSpace[Index]);方法二:decompose3 (Image, Image1, Image2, Image3), cr...

2020-11-19 16:54:57 329

转载 桥接模式

桥接模式:是将抽象部分与它的实现部分分离,使他们都可以独立的变化。想象一下开关和电器分别被抽象成两个不同的继承类。优点:分离抽象和实现部分。桥接模式使用“对象间的关联关系”解耦了抽象和实现之间固有的绑定关系,使得抽象和实现可以沿着各自的维度来变化。即抽象和实现不再在同一个继承层次结构中,而是“子类化”它们,使它们各自都具有自己的子类,以便可以进行任意组合,从而获得多维度的组合对象。 在很多情况下,桥接模式可以取代多层继承方案。多层继承违背了“单一职责原则”,复用性较差,且类的个数非常多。所以相

2020-09-24 09:22:05 107

转载 职责链模式

简要描述职责链模式:有一个命令(发送者)发出,沿着一串对象传递,只有符合条件的可以处理它,一般处理完就中止传递。优点: 降低耦合度,将请求的发送者和接收者解耦。 简化了对象,使得对象不需要知道链的结构。 增强给对象指派职责的灵活性,通过改变链内的成员或者调整它们的次序来动态改变职责。 增加新的具体处理者很方便,无须修改原有代码,只需要在客户端重新建链即可。缺点: 由于没有明确的接收者,所以无法保证请求一定会被处理(可...

2020-09-22 09:33:46 116

原创 深拷贝,浅拷贝,赋值操作符的技术要点总结

写这篇文章的目的是因为这两天,遇到一个复制操作指针的问题(在一个列表里,存放的是指针变量,想通过右击鼠标实现复制操作),生成的新变量和源变量都是指向同一个地址,改变其中一个都会影响另一个,这样操作明显是不符合要求的。 网上找了资料,问了网友,后来回顾一下自己的寻问过程,发现自己很傻逼,不堪回首啊,后面还是要把C++Parimer找出来看啊。左思右想,还是把这个过程写下来,是一种记录,更是一种反思。 问题起因: ...

2020-09-04 14:34:27 208

转载 技术好文

C++类指针类型的成员变量的浅复制与深复制:https://www.cnblogs.com/gaochaochao/p/8370762.html。

2020-09-03 10:42:48 432

原创 QT编译报错汇总

LNK2019:无法找到外部符号, LNK1120:无法解释的外部命令。这些报错原因各异,以下是各种问题的原因,及解决方法。1,输出类不是共享类。一般只要在头文件加上共享标识即可。2,引用类和输出类在不同的子项目,即使输出类是共享了,也有可能报错。只要将输出类的生成路径和引用类的生成路径改成同一路径下,然后在引用类中,引用的是同一路径下的文件。最好将所有输出文件都统一到一个文件夹,方便管理,也避免错误发生无从下手。路径,路径还是路径.........................

2020-07-16 14:25:41 811

转载 C++引用

1.引用和指针区别:https://www.runoob.com/cplusplus/cpp-references.html2.引用作为参数:https://www.runoob.com/cplusplus/passing-parameters-by-references.html3.引用作为返回值:https://www.runoob.com/cplusplus/returning-values-by-reference.html...

2020-07-16 14:08:47 165

原创 自定义类往往需要添加一些头文件

编译出错:添加了:#include <QString>报错消失总结:往往自定义类会缺少一些头文件,在自定义类中,使用相关类,需要添加对应的头文件。

2020-06-03 17:52:11 334

原创 QT信号槽一点小知识

编译报错:云里雾里,一时间不知道什么问题,重新清除,qmake,构建还是不行,检查头文件和继承也没问题,都属于QObject(要使用信号槽机制,必须是QObject子类)。怎么办?????加上Q_OBJECT,之后编译通过...............................论基础的重要性!!!!...

2020-05-28 11:42:26 142

原创 彻底搞懂C/C++函数指针1,2, 3

1:https://blog.51cto.com/hipercomer/7923002:https://blog.51cto.com/hipercomer/7923013: https://blog.51cto.com/hipercomer/792302

2020-04-22 17:14:28 242

原创 QT利用宏自动创建get/set代码

//利用宏定义//创建具体函数,省去大量代码//数据保存还是很麻烦,还是要一条一条保存//通过对象调用函数

2020-04-05 11:27:05 981

原创 SOLID——单一职责原则(SRP)

任何一个软件模块都应该只对某一类行为者负责

2020-03-30 11:39:45 188

原创 PCL点云库的架构

1.输入/输出 PCL中所有的处理都是基于点云展开的,利用不同的设备获取点云,存储点云等都是点云处理前后必须做的流程,PCL中有自己设计的内部PCD文件格式,为此,设计读写该格式以及与其他3D文件格式之间进行转化的接口类都是很必要的,目前PCL内部支持对常用的3D格式文件的打开与存储操作,以及与PCD内部格式之间的互相转化。 本章首先对PCL中支持的点云获取设备以及Ope...

2020-03-18 01:09:50 1450

原创 相机的硬触发接线

1.需要要懂得一点继电器的原理,继电器就是通过给线圈通电,使触点动作,由常开变成常闭。2.在接线的时候,我们需要根据我们的信号输入的是高电平还是低电平。3.下面的例子信号输入是低电平信号,所以线圈需要接收24V...

2020-03-17 00:15:46 10327

原创 OpenNI开源框架

OPenNI来源于由业界领导的一个非盈利组织,专注于提高和改善自然交互设备与应用软件的互操作能力。OPenNI是一个多语言,跨平台的框架,它定义了一套用于编写通用自然交互应用API。OPenNI的主要目的是形成标准API,便于下面两个接口之间进行通信:a.视觉和音频传感器(用于感知周围环境信息)。b.视觉和音频感知中间件(用来对应用场景中所记录的音频和视觉数据进行分析与理解,例如能够接...

2020-01-31 13:56:46 666

原创 如何将类声明为元对象类???

2019-11-29 15:49:19 146

原创 图像处理的所有阈值处理的算子

1.threshold(Image:Region:MinGray,MaxGray: ) 比较基本的分割方法2.fast_threshold(Image:Region:MinGray,MaxGray,MinSize: ) 比较基本的快速分割方法3.dyn_threshold(OrigImage,ThresholdImage:...

2019-11-28 11:42:24 802

原创 缺陷检测1—巧用形态学处理和动态阈值

原图:Opening图:Closing图:效果:代码:

2019-11-26 16:17:43 520

原创 一些运动控制中的电机知识

1.什么是脉冲当量? 脉冲当量是当一个控制器输出一个脉冲时,所产生的移动位移。对直线运动来说,是指移动的距离,对于圆周运动来说,是指转动的角度。2.什么是丝杆螺距? 丝杆每两个丝之间的距离。3.什么是电机的步距角? 一个脉冲驱使步进电机转动的角度。如步距角为1.8°的电机,转一圈就要:360°÷1.8° = 200个脉冲。4.什么是驱动器细分...

2019-11-22 11:03:23 1690

原创 利用QT的反射机制的一种实际模式

最近学习了反射机制的使用方法,网上也有很多这方面的介绍,但初次看起来还是很难了解,不够清晰。经过几天的深入学习,我把我的理解写出来,可能理解有不全对,仅供参考。什么是反射机制?反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;这种动态获取信息以及动态调用对象方法的功能称为反射机制为什么使用反射?通过使用字符串,...

2019-11-18 17:47:26 462

原创 QT开发笔记-----杂

1. 对于规范的Qt程序,我们要在main()函数中将主窗口部件创建在栈上,例如“Widget w;”,而不要在堆上进行创建(使用new操作符)。对于其他窗口部件,可以使用new操作符在堆上进行创建,不过一定要指定其父部件,这样就不用使用de­lete操作符来销毁该对象了。 2.信号和槽机制是Qt的核心内容,而信号和槽机制必须依赖于元对象系统,所以它...

2019-11-12 16:35:30 175

原创 #define中#和##以及 #@的作用

在用#define 定义时 , 斜杠("\")是用来续行的,"#"用来把参数转换成字符串,是给参数加上双引号。"##"则用来连接前后两个参数,把它们变成一个参数,"#@"是给参数加上单引号。下面的例子会使您很容易理解。#define CAT(x,y) x##y /* CAT(1,"abc") => "1abc" */#define TOCHAR(a) #@a...

2019-11-05 15:13:47 871

原创 PMAC的PID调节的一些领悟

最近使用PMAC的控制器,又是第一次调节PID,完全小白一个。还好在各方的支援下,把电机动了起来。所以,基于技术共享原则,把我学到的分享给大家。首先我我们需要设置3个参数,分别时I100 = 1(激活电机), I169 = 327679(我用的是16位模拟量输出的控制器,最大输出是10V),I124 = $120001(屏蔽报警)。之后我们先使用开环调节,测试编码器接线有没有问题,如果...

2019-10-23 14:13:58 1357

原创 QT多线程

在Qt中,有两种多线程方法,分别是:1.自定义类继承QThread类,重载run方法;2.自定义类继承QObject类。在另一个开启线程类中,声明自定义类和QThread对象。用MoveToThread函数将自定义类转移到线程中。通过信号连接自定义类的槽函数,并通过信号触发槽函数。(槽函数在子线程中执行)。QT官方推荐使用第二种方法:以下为第二种方法的实例:...

2019-09-30 16:00:29 218

原创 QT+PMAC联合开发

   最近接触到PMAC的IMAC—FX控制器,虽然他的主程序是写在下位机,但还是需要上位机和它进行通信和交互。官方提供的上位机DEMO都是基于VC,C#,和VB等。对于QT的用户,没有很直接的代码供参考。   PMAC提供了COM组件,供上位机调用.在QT中使用com组件,需要使用QT提供的Dumpcpp.exe工具将PMAC提供PCommServer.exe文件生成.h和.cpp文件。...

2019-09-30 10:51:31 1046 4

空空如也

空空如也

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

TA关注的人

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