QCustomplot绘图性能的改善

QCustomPlot采用了诸如自适应采样和文本对象缓存之类的各种技术,以减少重新绘制所需的时间。但是,某些功能(如复杂的半透明填充和粗线)仍会导致速度显着下降。如果您在应用程序中注意到这一点,这里有一些有关如何提高重复打印性能的提示。到目前为止,大部分时间都花在了绘图功能上,尤其是在绘制高密度图和其他绘图表时。为了获得最佳性能,请考虑以下几点:特别是在图形,粗线,半透明颜色下/之间使用复杂的填充时:通过QCustomPlot :: setOpenGl启用QCustomPlot的OpenGL硬件加速渲
分类: 其他 发布时间: 09-25 14:35 阅读次数: 0

Qt音视频开发25-ffmpeg音量设置

一、前言音视频的播放、关闭、暂停、继续这几个基本功能,绝大部分人都是信手拈来的搞定,关于音量调节还是稍微饶了下弯弯,最开始打算采用各个系统的api来处理,坐下来发现不大好,系统的支持不完美,比如有些api限定了win7,而xp确没有,而且这玩意控制的是全局的音量,不好,大部分时候需要控制的是当前播放的媒体的音量,估计vlc和mpv这类播放器在处理声音的时候也有过如此的场景分析,后面还测试过用ffmpeg的filter滤镜代码控制音频数据的分贝值,比较繁琐,代码量也大,不方便初学者学习,最后灵机一动去找QA
分类: 其他 发布时间: 09-25 14:35 阅读次数: 0

【OpenCV学习笔记】1.Mat类

1.Mat类的构造函数Mat(int rows,int cols,int type);//rows-行数,cols-列数,type-类型//数据类型包括CV_8UC(n)、CV_8SC(n)、CV_16SC(n)、CV_16UC(n)、CV_32SC(n)、CV_32FC(n)等,n为通道数,imshow显示类型为CV_8UC1Mat(Size(int cols,int rows),int...
分类: 其他 发布时间: 09-25 14:35 阅读次数: 0

【OpenCV学习笔记】2.对比度增强

1.灰度直方图灰度直方图是图像灰度级的函数,描述每个灰度级在图像矩阵中的像素个数或占有率。灰度级范围可以用来度量图像对比度,灰度级范围越大代表图像对比度越强,图像给人的感觉越清晰。Mat calcGrayHist(const Mat & image){ Mat histogram = Mat::zeros(Size(256, 1), CV_32SC1);//存储256个灰度级的...
分类: 其他 发布时间: 09-25 14:35 阅读次数: 0

【OpenCV学习笔记】3.图像平滑

平滑技术(滤波技术)可以抑制或者消除图像噪声,常用的平滑处理算法包括二维离散卷积的高斯平滑、均值平滑,基于统计学方法的中值平滑,具备保持边缘作用的平滑算法的双边滤波、导向滤波等。1.二维离散卷积卷积定义及矩阵形式二维离散卷积是矩阵的一种计算方式,假设I=(1234)I=\begin{pmatrix}1&2\\3&4\end{pmatrix}I=(13​24​),K=(...
分类: 其他 发布时间: 09-25 14:35 阅读次数: 0

【OpenCV学习笔记】4.阈值分割

阈值分割是一种基于区域的、简单的通过灰度信息提取形状的技术,实现简单、计算量小、性能稳定,因此应用广泛。阈值分割后的输出图像只有两种灰度值:255和0,因此阈值分割处理又被称为图像二值化。1.方法概述全局阈值分割全局阈值分割是将灰度值大于thresh(阈值)的像素设为白色,小于或者等于thresh的像素设为黑色;或者反过来。假设输入图像为III,高为HHH,宽为WWW,I(r,c)I...
分类: 其他 发布时间: 09-25 14:35 阅读次数: 0

【OpenCV学习笔记】5.形态学处理

常用的形态学处理方法包括:腐蚀、膨胀、开运算、闭运算、顶帽运算、底帽运算,其中腐蚀和膨胀是最基础的方法,其他方法是两者相互组合产生的。1.腐蚀图像的腐蚀操作与中值平滑操作类似,取每一个位置的矩形邻域内最小值作为该位置输出的灰度值。不同的是,这里的邻域不再是单纯的矩形结构,也可以是椭圆形结构、十字交叉型结构等。因为取每个邻域内的最小值,所以腐蚀后输出图像总体亮度平均值比起原图会有所降低,...
分类: 其他 发布时间: 09-25 14:35 阅读次数: 0

【OpenCV学习笔记】6.边缘检测

图像的边缘指的是灰度发生急剧变化的位置。边缘检测的目的是制作一个线图,在不损害理解图像内容的情况下,同时大大减少图像数据量,提供对图像数据的合适概述。边缘检测大多是通过基于方向导数掩码(梯度方向导数)求卷积的方法。1.Roberts算子Roberts边缘检测是图像矩阵与以下两个卷积核分别做卷积:Roberts135=(100−1),Roberts45=(01−10)Roberts_{...
分类: 其他 发布时间: 09-25 14:35 阅读次数: 0

LeetCode字符串高频题目整理(持续更新中)

415. 字符串相加给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和。注意:num1 和num2 的长度都小于 5100. num1 和num2 都只包含数字 0-9. num1 和num2 都不包含任何前导零。你不能使用任何內建 BigInteger 库, 也不能直接将输入的字符串转换为整数形式。因为最大可能就是两个都是5100个9,进位最多产生2个位,因此加上末尾的’\0’那么够多了。注意:不能开函数体内,因为里面res[5103]栈内存,虽然这个够小完全可以开,但是返
分类: 其他 发布时间: 09-25 14:35 阅读次数: 0

LeetCode数组高频题目整理

1.两数之和(0.479)题目描述给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9 所以返回 [0, 1]解题思路暴力解法,遍历两次,注意题中要求,一个数只能用一次,所以,第二次遍历的时候注意j!=i。
分类: 其他 发布时间: 09-25 14:35 阅读次数: 0

S3C2410 MMU(存储器管理单元)详述

MMU,全称Memory Manage Unit, 中文名——存储器管理单元。许多年以前,当人们还在使用DOS或是更古老的操作系统的时候,计算机的内存还非常小,一般都是以K为单位进行计算,相应的,当时的程序规模也不大,所以内存容量虽然小,但还是可以容纳当时的程序。但随着图形界面的兴起还用用户需求的不断增大,应用程序的规模也随之膨胀起来,终于一个难题出现在程序员的面前,那就是应用程序太大以至于内存容纳不下该程序,通常解决的办法是把程序分割成许多称为覆盖块(overlay)的片段。覆盖块0首先运行,结束时他将
分类: 其他 发布时间: 09-25 14:35 阅读次数: 0

拒绝造轮子!如何移植并使用Linux内核的通用链表(附完整代码实现)

在实际的工作中,我们可能会经常使用链表结构来存储数据,特别是嵌入式开发,经常会使用linux内核最经典的双向链表 list_head。本篇文章详细介绍了Linux内核的通用链表是如何实现的,对于经常使用的函数都给出了详细的测试用例,并且移植了Linux内核的链表结构,使得在任意平台都可以方便的调用内核已经写好的函数。建议收藏,以备不时之需!
分类: 其他 发布时间: 09-25 14:35 阅读次数: 0

ref和out共同点和区别

ref:引用传递,从外部传递地址进方法下面展示一些 内联代码片。//ref的创建和调用public void getValuse(ref int x,ref double y,ref string z) { Console.WriteLine("请输入年龄: "); x = Convert.ToInt32(Console.ReadLine()); Console.WriteLine("请输入身高: ");
分类: 其他 发布时间: 09-25 14:35 阅读次数: 0

2020-08-09 谈“第二份好资料”

逛了一大圈,突然觉得巍海的课也不香了。突然意识到一个深刻的问题,也就是我一直以来关于“什么是好资料”的看法。从北交陈后金,到清华卓晴,到东大孟桥,再到北邮李巍海,听了半天,总会觉得当下听的课不好,找了半天的新课一听就懂,然后理所当然地觉得这个新课比以前的课易懂。又回想起冯友兰一百年前就批评过的贵远贱近、贵古贱今,以及豆瓣上的外国书总比国内的好,无非是国内的书充当了这个第一本书的角色,先背了知识体系不完备的读者的锅。或者说,由于国外书往往和更高水准的读者(不管是已经学过相关知识还是一开始就有看推荐教材之外
分类: 其他 发布时间: 09-25 14:35 阅读次数: 0

2020-08-11 C++和环境;溢价理论和恋爱

今天刷了很久的知乎。同期和yzj聊了很久。
分类: 其他 发布时间: 09-25 14:35 阅读次数: 0

2020-08-26 笔记的风格和措辞

今天复习无穷级数部分的笔记,发现了一个问题。而这个问题甚至是触碰到写作思想的:口语化和简明的关系。
分类: 其他 发布时间: 09-25 14:35 阅读次数: 0

2020-08-28 bibtex文件label后面要加逗号

bibtex的一个使用谬误。一个很不长心但没人写过的错误
分类: 其他 发布时间: 09-25 14:35 阅读次数: 0

告别简陋,让Arduino开发变得高大上——MS VSCode体验

本章来自于21ic网,不仅简单讲解了VSCode作为编辑器的强大功能,还详细说明了Arduino的VSCode开发所需的环境等各项配置方法。VSCode通过简单的配置便成为了优美强大的Arduino开发工具,这是作为一个开发人员所希望见到的好工具。
分类: 其他 发布时间: 09-25 14:35 阅读次数: 0

VSCode的Arduino开发过程中出现include errors打开错误 detected,以及找不到avr/pgmspace.h

Arduino的VSCode环境配置是复杂且多坑的,涉及一定的路径依赖的知识,虽然这个坑看起来没有什么营养,但仍是棘手的。
分类: 其他 发布时间: 09-25 14:35 阅读次数: 0

2020-09-06 结论、例子以及例子对结论的重要性

今天复习含参广义积分,可积性那里给出了一个解决问题的方法,但时隔过久以至于不能看明白当时说了什么意思,所以随便谈谈结论和例子的想法。
分类: 其他 发布时间: 09-25 14:35 阅读次数: 0