一个用于 Qt 项目的简单的日志库

一个用于 Qt 项目的简单的日志库在写 Qt 程序时,经常会用到 qDebug 输出一些调试信息。但是正式发布时这些信息就看不到了,这时就很需要有个日志系统,可以把程序输出的一些关键性的信息记录下来。上网查找了一番,是有个开源项目叫 log4qt 的。不过这个项目许久都不更新了。看了看这个项目还挺复杂的,感觉用不到这么多功能。所以就自己山寨了个简单的日志库。Qt 中有个 qInstallMessag...
阅读(66) 评论(0)

Qt(C++)项目中使用 Basler 工业相机(图像获取策略)

Qt(C++)项目中使用 Basler 工业相机(图像获取策略)Pylon 中的 CInstantCamera 类支持四种图像获取策略,分别称为: One by One Grab Strategy Latest Image Only Grab Strategy Latest Images Strategy Upcoming Image Grab Strategy 下面就简单写写这几种策略的含义和区别...
阅读(245) 评论(2)

Qt(C++)项目中使用 Basler 工业相机(2 参数设置)

Qt(C++)项目中使用 Basler 工业相机(2 参数设置)上一篇博客介绍了 pylon 的基本结构和如何枚举系统中的相机。这一篇主要讲讲如何设置相机的各个参数。在设置相机参数之前,先要获取相机对象。Pylon::CTlFactory 具有一个 CreateDevice() 方法可以用来生成一个相机对象,并返回一个指向 IPylonDevice 的指针。下面的代码用来获取枚举出来的第一个相机对应...
阅读(346) 评论(0)

Qt(C++)项目中使用 Basler 工业相机(1)

Qt(C++)项目中使用 Basler 工业相机(1 枚举相机)最近的一个项目中用到Basler 的GigE 接口的工业相机。为此花了好几天时间研究了pylon 的用法。本文就是学习过程中做的笔记。Pylon 的结构可以参考下图。 图 1 Pylon 的结构 整个pylon 对 GenICam 接口进行了封装,但是这个封装并不是特别的彻底。只有理解了GenICam 的设计思想才能真正明白pylo...
阅读(224) 评论(0)

Qt(C++) 截屏的方法

最近一个Qt(C++)的项目需要用到截屏的功能,就花时间研究了一下如何实现。 Qt 确实是好用,截屏只需要下面三行代码就够了。QDesktopWidget *desk = QApplication::desktop(); QScreen * screen = QGuiApplication::primaryScreen(); QPixmap p = screen->grabWindow(desk-...
阅读(617) 评论(0)

Qt 中获取摄像头图像数据的方法

Qt 中获取摄像头图像数据的方法在 Qt 中提供了 QCamera 类用来操作摄像头。(这里的摄像头指的是电脑上常用的那种 USB 摄像头或网络摄像头,暂时还不支持工业相机。)摄像头获取的实时图像可以显示在 QCameraViewfinder 或 QGraphicsVideoItem 上,QCameraImageCapture 可以获取静态的图像,QMediaRecorder 可以用来录像。用这些现...
阅读(742) 评论(0)

C++ 复制构造函数不能用 explicit 修饰

最近在写的一个代码。出现个莫名其妙的编译问题。代码可以简化成这样: class foo { public: foo(); explicit foo(int a){m_a = a;} explicit foo(foo &a) {m_a = a.m_a;} private: int m_a; };int main() { foo x; foo b = x;...
阅读(121) 评论(0)

菲索干涉仪 (Fizeau interferometer) 的基本原理

菲索干涉仪 (Fizeau interferometer) 的基本原理最近一个项目,要测量一个玻璃平面是否平整。调研了一番后发现有种菲索干涉仪就是做这个用途的。这里简单记录一些菲索干涉仪的基本原理。算是个备忘。菲索干涉仪是法国物理学家 Hippolyte Fizeau 在研究以太 (ether)的性质时发明的一种光学仪器。虽然以太已经被证明时不存在的,但是他发明的干涉仪却成为一种重要的光学仪器留了下...
阅读(246) 评论(0)

C++ 中 public、protected 及 private 的作用总结

C++ 中 public、protected 及 private 的作用总结C++ 中 class 的访问权限分的很细,有 public、protected 及 private 三种,派生子类时又有三种派生类型,搭配起来就有 9 中不同的组合了。下面用一张表总结了这些搭配的不同。其中,括号中的时在派生类中这些成员变量(函数)的角色。 成员变量修饰符 类外的普通函数 public 派生类...
阅读(194) 评论(0)

pkg-config 用法简介

pkg-config 用法简介当我们写代码时,经常会调用第三方的库。这些第三方的库的安装路径在每台电脑上可能都会不同。所以如果我们把这些库的路径写死,那么别人拿到我们的代码编译时就会遇到各种问题。为了解决这个问题,就有了 pkg-config。这里要多说一句 pkg-config 是个 linux 下的工具,在 windows 下虽然也能用,但是用的人很少。简单的说 pkg-config 维护了一个...
阅读(247) 评论(0)

Qt 5 中解决中文乱码的方法

Qt 5 中解决中文乱码的方法在 Qt 4 的时代,解决中文乱码挺麻烦。要考虑用的是什么编译器,具体的可以参考下面这篇文章: http://blog.csdn.net/brave_heart_lxl/article/details/7186631到了 Qt 5 的年代,这个问题变得简单了些。因为根据 Qt 的文档: http://doc.qt.io/qt-5.6/qstring.html#QSt...
阅读(492) 评论(0)

fedora 25 下安装 haroopad

fedora 25 下安装 haroopadharoopad 是一款免费的 markdown 编辑器,我在 WIN 下一直在用。昨天电脑上装了个 Fedora 25,发现在 Fedora 上安装 haroopad 还挺麻烦。这里记录以下。haroopad 的网址如下:http://pad.haroopress.com/user.html网站上没有 fedora 的安装包,只提供了 tar.gz 格式...
阅读(496) 评论(0)

C++ 中使用伪随机数

使用过 C语言标准库中随机数相关功能的同学肯定还记得 C 库中提供的两个函数,这么多年来C语言标准库中随机数生成的相关的函数就只有这两个。并且 rand() 函数只能生成 [0, RAND_MAX] 之间的均匀分布的随机整数,用起来非常不方便。许多 C\++ 的程序员在使用到随机数功能时,也只会用 C 标准库中这两个函数...
阅读(552) 评论(0)

循环冗余校验 (CRC) 计算的C++ 代码

最近经常有人发私信给我找我帮忙计算 CRC 校验。其实我有一篇博客 http://blog.csdn.net/liyuanbhu/article/details/7882789 里面介绍了CRC 计算的原理,也给出了些代码,里面的代码稍微改改就能计算常见的各种 CRC。 但是可能 CRC 计算确实有点难度,改写我的代码也不那么容易。趁着周末空闲,把原来的代码重新整理了一下,用 C++ 重新实现了...
阅读(754) 评论(0)

YUV 格式与 RGB 格式的相互转换公式及C++ 代码

YUV 格式与 RGB 格式的相互转换公式最近在用的一个工业相机,输出的图像格式是 YUY2 格式。而在电脑上显示时需要 RGB 格式,所以就花了些时间在网上查了些相关的资料。说实话,网上关于 YUV 与 RGB 格式变换的文章挺多的,本来不需要我再多写这么一篇。但是网上那些文章中给出了各种各样的变换公式,公式的系数又各不相同,让人看了之后越看越糊涂。其实那些文章的公式基本都是对的,只不过因为作者忘...
阅读(1738) 评论(1)

《Head First 设计模式》例子的C++实现(3 装饰模式)

《Head First 设计模式》例子的C++实现(3 装饰模式)装饰模式是在不必改变原类文件和使用继承的情况下,动态地扩展一个对象的功能。它是通过创建一个包装对象,也就是装饰来包裹真实的对象。 装饰模式的特点是 装饰对象和真实对象有相同的接口。这样客户端对象就能以和真实对象相同的方式和装饰对象交互。 但是这种模式会导致设计中出现许多小类,如果过度使用,会使程序变得很复杂。下面是代码: ///B...
阅读(400) 评论(0)

游戏手柄(JoyStick)编程控制的一个简单代码(Qt)

最近买到一种USB 接口的三轴 8 个按键的Joystick。下面这个样子。 用在最近做的一个工控项目上效果还不错。这里把代码公开了。 Joystick 的控制我以前写过两篇博客: http://blog.csdn.net/liyuanbhu/article/details/51714045 http://blog.csdn.net/liyuanbhu/article/details/5...
阅读(1249) 评论(0)

埃尔米特函数的计算(C++)

前两篇博客介绍了埃尔米特多项式和埃尔米特函数的基本性质。我研究这些的目的其实是为了解决一个函数逼近问题。也就是我要用埃尔米特函数去逼近另外一个函数。有了前两篇的铺垫,这个工作似乎挺简单。上一篇讲到了: f(x)=∑n=0∞fnψn(x) f(x) = \sum_{n=0}^{\infty} f_n \psi_n(x) 其中: fn=∫∞−∞f(x)ψn(x)dx f_n = \int_{-\...
阅读(501) 评论(0)

埃尔米特多项式 (Hermite Polynomials)简介(2)

埃尔米特多项式 (Hermite Polynomials)简介(2)上一篇博客给出了埃尔米特多项式的来源和递推公式。这一篇主要讲讲埃尔米特多项式的性质。 埃尔米特方程可以改写为 Sturm-Liouville 型:ddx[exp(−x2)∂ny∂tn]+λexp(−x2)y=0 \frac{d}{dx} \left[\exp(-x^2) \frac{\partial^n y}{\partial t...
阅读(431) 评论(0)

埃尔米特多项式 (Hermite Polynomials)简介(1)

最近在做一个数值逼近的算法,里面用到了埃尔米特多项式。所以就花了些时间推导了一遍,推导笔记放在这里算是给自己做个备忘。埃尔米特多项式 (Hermite Polynomial)简介(1)埃尔米特多项式是一组正交的多项式。就如许多其他的以人名命名的数学公式一样,埃尔米特多项式其实也并不是埃尔米特第一个提出的。 Laplace 在 1810 年一篇论文中就给出了埃尔米特多项式的系数,Chebyshev 则...
阅读(1060) 评论(0)
412条 共21页1 2 3 4 5 ... 下一页 尾页
    个人资料
    • 访问:2038235次
    • 积分:21598
    • 等级:
    • 排名:第336名
    • 原创:380篇
    • 转载:17篇
    • 译文:15篇
    • 评论:693条
    博客专栏
    最新评论