随笔分类 -  C++

摘要:super-night-hdr算法框架 一般拍摄14帧YUV(NV21图像,EV1<5帧>,EV0<5帧>,EV-2<2帧>,EV-4<2帧>),参考帧在EV1和EV0中选择,所以要计算清晰度;选择好参考帧后进行多帧降噪融合(与参考帧同EV的帧),然后融合EV负的帧以压制高光部分,最后做色阶拉伸、单 阅读全文
posted @ 2023-06-17 21:38 zarjen 阅读(34) 评论(0) 推荐(0) 编辑
摘要:最近在做一个手机上多帧配准后叠加平均计算中,需要保证实时性,此时要将输入数据、处理数据、获取结果等过程用各自的线程处理,同时增加mutex(std中)互斥量保证线程处理中数据的占用安全。 这里就简单写一个C++的程序例子(肯定会有bug,因为使用办公电脑,考虑信息安全不能在VS中调试): (完全是在 阅读全文
posted @ 2021-11-04 10:20 zarjen 阅读(254) 评论(0) 推荐(0) 编辑
摘要:负值及强转在C++程序在Debug和Release模式下编译的差别: 问题描述: 在调用自动曝光程序时,需要将红外图像传进去,红外图像需要单独计算得到,其中包含数据类型转换; 我在使用时,是将int型做减法运算后强制转换为unsigned short int型,在Debug模式下编译,程序运行,自动 阅读全文
posted @ 2020-02-26 11:50 zarjen 阅读(171) 评论(0) 推荐(0) 编辑
摘要:1、把release或debug文件下编译生成的exe文件拷贝到自己定义的一个文件夹下(用于存放发布程序); 2、在该文件加下shift+右键打开shell命令窗口; 3、在命令窗中,输入‘windeployqt’ + 空格 + 你要打包的exe程序名(如windeployqt LaserSafet 阅读全文
posted @ 2019-08-27 18:07 zarjen 阅读(368) 评论(0) 推荐(0) 编辑
摘要:win10-x64 + Qt5.13 + OpenCV3.4.6-x64 环境搭建 cmake:cmake-3.15.0-rc3-win64-x64 准备:安装Qt(加MingGW64位编译器)+ 安装OpenCV(64位)+ 安装cmake-x64添加环境变量: D:\Qt\Qt5.13.0\5. 阅读全文
posted @ 2019-07-26 13:08 zarjen 阅读(1899) 评论(1) 推荐(0) 编辑
摘要:Mac平台下的Qt程序在Windows下执行编译运行时,QString::asprintf()部分会出现的中文乱码问题,之前已经使用QStringLiteral宏解决了一个中文乱码问题; 但是此种情形单凭QStringLiteral宏解决不了。 原因: mac下采用MinGW编译,在Windows下 阅读全文
posted @ 2019-04-15 15:39 zarjen 阅读(390) 评论(0) 推荐(0) 编辑
摘要:QComboBox是下拉列表框组件类,QPlainTextEdit是一个多行文本编辑器。 添加具有用户数据的项 QComboBox::addltem() 函数的两种参数的原型定义如下: void addItem (const QString &text, const QVariant &userDa 阅读全文
posted @ 2019-04-12 17:58 zarjen 阅读(898) 评论(0) 推荐(0) 编辑
摘要:Qt写GUI时,获取日期字符串时,需要加中文,此时会出现乱码,或者在设置按钮的text时为中文时也会出现乱码; 此时需要使用QStringLiteral("含有中文的字符串")来解决乱码问题,如上段代码中,如果直接使用dt.toString("yyyy年 MM月 dd日")会出现中文乱码。 阅读全文
posted @ 2019-04-11 17:41 zarjen 阅读(646) 评论(0) 推荐(0) 编辑
摘要:vector:动态数组 单口容器,从首位置或中间位置插入元素时,会使得后面的元素位置发生变化,所以一般建议用push_back来从后端追加添加元素。(下右图,deque是双口容易(双端队列)) 容器的基本操作代码如下:(包含了巧用swap收缩空间及reserve预留空间) 1 #define _CR 阅读全文
posted @ 2018-12-12 16:31 zarjen 阅读(388) 评论(0) 推荐(0) 编辑
摘要:纯虚函数,只有函数声明没有实现,形式如:virtual double get_area() = 0,这里的0是纯语法概念,属于关键字; 一个类中包含一个纯虚函数,这个类就是抽象类; 如果一个普通类继承抽象类,必须重写父类中所有纯虚函数,如果不重写那么该类也变成类抽象类; 抽象类不能实例化,因为其方法 阅读全文
posted @ 2018-12-06 22:40 zarjen 阅读(157) 评论(0) 推荐(0) 编辑
摘要:虚函数表和vptr指针 通过virtual关键字修饰函数,可以实现多态,本质是编译器会在类中生成一个虚函数表,在给对象开辟空间时会默认增加一个指针vptr,这个指针指向虚函数表; 一个vptr指针占4个字节长度,通过virtual修饰函数时就会创建且只创建一个vptr指针,长度不变,所以增加virt 阅读全文
posted @ 2018-12-06 15:44 zarjen 阅读(1402) 评论(0) 推荐(0) 编辑
摘要:虚继承,在继承时前面加virtual关键字,如class Bed:virtual public Furniture{}; 虚继承是为了解决多继承出现菱形情况时,某一子类中同一属性出现多个,通过virtual关键字就可以直接最上层的父类中的该属性,且只有一个。如下图: 虚析构函数,在多态过程中,调用析 阅读全文
posted @ 2018-12-05 22:38 zarjen 阅读(775) 评论(0) 推荐(0) 编辑
摘要:&&和||操作符也可以重载,但是不建议重载,因为重载时短路与和短路或都会‘失效’,即不论实际第一个表达式为true还是false,短路与和短路或后面的表达式都会继续判断,这样会导致结果和预期可能不同! 1 //对于标准数据类型直接使用&&和|| 2 //假设+操作符已经重载 3 4 Test t{ 阅读全文
posted @ 2018-12-05 08:14 zarjen 阅读(120) 评论(0) 推荐(0) 编辑
摘要:操作符重载: 在自定义的数据类型的数据间的加减乘除操作,默认情况下编译器是不识别的,需要进行操作重载,格式如operator+(param); 但是并不是所有的运算符都是可以重载或有必要重载的! 重载规则: 实例代码: 1 #define _CRT_SECURE_NO_WARNINGS 2 #inc 阅读全文
posted @ 2018-12-04 13:56 zarjen 阅读(211) 评论(0) 推荐(0) 编辑
摘要:友元,用friend关键字修饰。 友元函数: 友元函数的目的是,让函数对象类型的参数可以直接访问该对象的私有成员!避免了出现不断调用该函数时通过get函数获取私有成员引起的压栈出栈问题! 在需要定义为友元函数的函数前加friend关键字,且在需要直接访问私有成员的那个类中声明函数即可; 同类对象间无 阅读全文
posted @ 2018-12-03 22:51 zarjen 阅读(188) 评论(0) 推荐(0) 编辑
摘要:this指针,指向当前对象; 本质上是一个常指针,Test *const this,地址不能修改,指向的内容可以修改; 要想保证this指针指向的内容也不可以被修改,需要在成员函数尾部加const,代表修饰this指针,即const Test *const this; static成员函数只能返回s 阅读全文
posted @ 2018-12-03 16:26 zarjen 阅读(149) 评论(0) 推荐(0) 编辑
摘要:static变量和函数 静态成员变量不在对象的内存区,在静态区,所以sizeof()时计算不包含静态变量的大小; 类中的函数也不在对象中。 练习: 阅读全文
posted @ 2018-12-02 22:15 zarjen 阅读(488) 评论(0) 推荐(0) 编辑
摘要:C++中new和delete是运算符,不是函数,执行效率高。 C语言中malloc()和free()是函数,标准库stdlib.h中。 new会在堆上初始化一个对象时会触发对象的构造函数,malloc不能。 delete会触发对象的析构函数,free不能。 delete释放的是对象的空间,析构函数释 阅读全文
posted @ 2018-12-02 17:04 zarjen 阅读(282) 评论(0) 推荐(0) 编辑
摘要:构造函数参数初始化列表 当类中的成员包含对象时,在定义构造函数初始化成员需要使用初始化列表将对象成员初始化,如下段代码中的m_a1和m_a2; 构造对象成员的顺序与初始化的顺序无关,与对象成员的定义顺序有关; 如果类的成员中包含常量,如const int m_c,那么构造函数初始化参数时必须使用初始 阅读全文
posted @ 2018-12-02 16:18 zarjen 阅读(267) 评论(0) 推荐(0) 编辑
摘要:1、浅拷贝 实例代码如 1 #define _CRT_SECURE_NO_WARNING 2 #include <iostream> 3 #include<cstdlib> 4 上面代码运行会报错,原因是,浅拷贝中t2的char *name与t1的指向同一个堆中地址,(后构造的先析构)当t2调用完毕 阅读全文
posted @ 2018-12-01 21:27 zarjen 阅读(154) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示