- 博客(43)
- 收藏
- 关注
原创 Qt打包的两种方式(2)
5.执行 windeployqt UART.exe 命令即可将所有依赖关系放在新建文件夹内(UART.exe是我的程序的名字,根据自己的名字修改)1.选择使用Qt命令生成的.exe文件的路径,也就是第一、2步里面新建文件夹的路径,因为执行了Qt打包命令后,该路径包含了项目所有的依赖关系。2.点击Add>>>Add Folder Recursive选择第一步选择的.exe文件所在目录。4.点击Process进行打包,进度条读满点击Run测试是否打包成功。4.修改所在路径到你第2步新建文件夹的路径下。
2024-08-26 17:54:18
285
原创 Qt打包可执行文件.exe的两种方式
然后久能看到一个这样的文件夹进入release找到我们的可执行程序,但是这时候点击你会发现,会缺失一些东西,没办法执行。这时候就要用到我们的qt自带的工具了按下win键搜索qt双击那个MinGW的黑框框,以上是qt6和qt5两个版本的工具,如果你们电脑上只有一个qt版本的话就是那个了。复制一下我们刚刚exe文件所在的路径在黑框中输入windeployqt 和ctrl+v你的路径,再\exe文件的名称注意这里要拼接一下路径,加一个\ 和你的exe文件的名字。
2024-08-26 17:49:28
235
原创 固定点 DSP与多核浮点 DSP的区别
固定点 DSP 和 多核浮点 DSP 是数字信号处理器的两大主要类型,它们在架构、应用场景、性能和开发方法上有显著的区别。
2024-08-20 16:30:56
370
原创 DSP28335和DSP6678在开发上面的区别?
DSP28335 和 DSP6678 都是德州仪器 (TI) 的数字信号处理器 (DSP),但它们面向的应用和开发方法有一些明显的区别。
2024-08-20 16:28:32
266
原创 30 OpenCV 案例:实施人脸检测
opencv知识点:本课所解决的问题:本节课的内容主要基于opencv 4 实现,开始我们先了解一下。本课将介绍一种自带的,一个进行人脸检测的模型为了方便,我们不采用视频的方式,我们就直接去下载课程源码zip了下载完之后到图中目录:opencv_tutorial_data-master → models → face_detector目标文件夹:安装opencv目录下的sources → samples → dnn → face_detector开始前,我们可以先把头文件和命名空间补上这里提一下,当我们使用
2024-08-18 09:36:42
788
原创 29 OpenCV 高斯双边模糊
边缘保留滤波算法(EPF)有能力通过卷积处理实现图像模糊的同时对图像边缘不会造成破坏,滤波之后的输出完整的保存了图像整体边缘(轮廓)信息。处理无论是均值还是高斯都是属于模糊卷积,它们都有一个共同的特点就是模糊之后图像的边缘信息不复存在,受到了破坏。双边模糊考虑了像素值分布的影响,对像素值空间分布差异较大的进行保留从而完整的保留了图像的边缘信息。高斯模糊是考虑图像空间位置对权重的影响,但是它没有考虑图像像素分布对图像卷积输出的影响。双边模糊可以去除无关噪声,同时保持较好的边缘信息。
2024-08-18 09:34:28
412
原创 28 OpenCV 高斯模糊
计算平均值的时候,我们只需要将"中心点"作为原点,其他点按照其在正态曲线上的位置分配权重,不平滑主要在于距离中心点很远的点与距离中心点很近的所带的权重值相同,产生的模糊效果一样。高斯模糊之所以叫高斯模糊,就是因为它运用了高斯的正态分布的密度函数(概率论知识)。平滑化处理,就是用平滑滤波函数,生成卷积核对应的权重,然后对图像进行卷积操作。上面的正态分布是一维的,而对于图像都是二维的,所以我们需要二维的正态分布。正态分布中,越接近中心点,取值越大,越远离中心,取值越小。正态分布显然是一种可取的权重分配模式。
2024-08-18 09:32:30
281
原创 27 OpenCV 图像卷积操作
图像卷积靠卷积核完成卷积核规定了运算的规则滤波/模糊是卷积运算所带来的效果不同的卷积核所得到的卷积效果不同,故衍生出了不同种类的滤波/模糊,形态运算,梯度运算等概念。由此可见:卷积是图像处理的基础,许许多多处理方式都是离不开卷积的。
2024-08-18 09:27:01
637
原创 26 OpenCV 直方图均衡化
话说回直方图,我们引入直方图,很大程度上是为了让我们可以根据直方图的形态,判断图像的质量,比如根据下图所示,会很快发现一张图片是过亮还是过暗。图像直方图均衡化可以用于图像增强、对输入图像进行直方图均衡化处理,提升后续对象检测的准确率等。而在HSV色彩空间中,V通道关于亮度的,所以我们实现彩色图像的均衡化可以从V通道着手。直方图均衡化是将原图像通过某种变换,得到一幅灰度直方图为均匀分布的新图像的方法。中,如果要实现灰度图像直方图的均衡化,只要用到一个。我们本课涉及的直方图均衡化,就是比较常用的那一种。
2024-08-18 09:24:29
653
原创 25 OpenCV 二维直方图
opencv知识点:本课所解决的问题:上节课中,我们学习了一维直方图的绘制,那我们该如何绘制二维直方图呢?关于二维直方图的绘制,我们通常选择HSV模式下的图像我们回顾的知识,可以发现H(色调)范围是[0,180]S(饱和度)范围是[0,255]V(明度)范围是[0,255]即HS两个通道就可以表示颜色,非常方便二维直方图的绘制在中,如果我们想绘制二维维直方图,要用到三个介绍如下cvRoundminMaxLoc2.绘制二维直方图本课中计算的直方图维数为2维,采取方式为我们先来输出一下得到的直方图数
2024-08-18 09:22:17
356
原创 24 OpenCV 图像直方图
由于其计算代价较小,且具有图像平移、旋转、缩放不变性等众多优点,广泛地应用于图像处理的各个领域,特别是灰度图像的阈值分割、基于颜色的图像检索以及图像分类、反响投影跟踪。因此一张较暗图片的直方图中的数据多集中于左侧和中间部分,而整体明亮、只有少量阴影的图像则相反。一幅灰度图像:图像直方图将0-255不同值分布在坐标系的X轴上,对应像素值的数量分布在Y轴上。通常直方图的维数要低于原始数据,所以它的信息有缺,图像直方图并不能唯一表示一张图像。是用以表示数字图像中亮度分布的直方图,标绘了图像中每个亮度值的像素数。
2024-08-18 09:19:54
626
原创 21 OpenCV 图像旋转
图像变换将原定义在图像空间的图像以某种形式转换到另外的空间,利用空间的特有性质方便地进行一定的加工,最后再转换回图像空间以得到所需的效果。只有物体的位置(平移变换)和朝向(旋转变换)发生改变,而形状不变,得到的变换称为刚性变换。也就是说,仿射变换和透视变换包含所有的基本变换,同时也作为基本变换的某种组合。为了更好的理解图像翻转,图像旋转等,我们首先介绍一下变换相关的概念。图像几何变换和图像变换的区别为:性质不同,包括不同,原始图像不同。通过如上图,我们可以计算新图像的宽度,高度,旋转中心的通式。
2024-08-18 09:07:54
833
原创 18 OpenCV 图像像素类型转换与归一化
但是这可能会给我们模型的训练过程带来一些问题, 因为在深度神经网络训练时一般使用较小的权重值来进行拟合,而当训练数据的值是较大整数值时,可能会减慢模型训练的过程。(虽然图像的像素处于0-1范围时,opencv会自动*255,由于仍然介于0-255之间,所以图像依旧是有效的,并且可以正常查看图像。如果我们在将图像输入到神经网络之前对图像做像素值归一化的处理,即将像素值缩放到0-1之间,就能够避免很多不必要的麻烦。这是因为imshow如果想要正确显示浮点类型的图像,必须进行归一化,把取值空间归一化为[0.1]
2024-08-16 15:39:42
806
原创 17 OpenCV 鼠标操作与响应
比如:提取矩形ROI区域时,如果box的width比较小,就会出现部分覆盖提取的问题。因为这只是一种简单的,通过矩形进行的ROI提取,提取的区域有时会有一些问题。要想在图像上,通过鼠标绘制图形,我们需要了解两个API。为了演示通过鼠标绘制矩形,我们选择三个鼠标事件。接下来,我么试一下通过绘制矩形提取ROI区域。我们这里,实现了通过鼠标在四个区域绘制矩形。
2024-08-16 15:36:59
433
原创 15 OpenCV 随机数与随机颜色
uniform是RNG中的一个方法,uniform(a,b),指定数的范围为(a,b)我们绘制一个线段,把两个点的坐标,还有三个通道的颜色都设置为了随机数得到。RNG(Random Number Generator,随机数生成器)是。中的一个随机数生成器类。
2024-08-16 15:31:19
340
原创 14 OpenCV 图像几何形状绘制
可以看到,这种隐约的图形效果很nice,只在原图像上绘制图形是达不到这种效果的。中,图像的坐标是,↓y,→x,在填写参数的时候一定要注意。接下来,这里演示一种很有意思的用法。接下来,我们开始绘制几何图形。中,椭圆有两种传参方式。
2024-08-16 15:27:00
417
原创 12 OpenCV图像色彩空间转换 - 进阶
知识点:本课所解决的问题:HSV相较于BGR色彩空间,颜色的区分度比较明显,对某个颜色来说可以很容易的提取出来。在opencv中,我们提取指定色彩范围的区域,采用实现,这样的一块区域,学名叫做ROI(region of interest),感兴趣区域。关于inRange的提取原理程序:更换图像背景,这里利用到了重载的程序:OpenCV 4.6.0 官方文档
2024-08-16 15:20:19
271
原创 11 OpenCV通道分离与合并
如果R,G,B分离,它们就分别对应一个单通道图像(因为都是单通道,所以为灰度图像)这时,如果再通过BGR2GRAY转换色彩空间,就可以得到对应的单通道图像。下图中间的R,G,B图,并不是分离,而是3通道中其他两个通道置0了。当然,这三个单通道图像再经过合并,就会恢复成原本的彩色图像了。彩色图像,是由RGB三个通道合并起来得到的。这里我们进行一个演示,实现如下通道的混合。这个混合的意思是,彩色图像本来是。根据文档,我们有两种分离方式。根据文档,我们有两种合并方式。的顺序,经过通道混合就变成了。
2024-08-16 15:17:29
387
原创 10 OpenCV图像像素的逻辑操作
我们先来绘制两个矩形,绘制矩形有两种传参方式。这个参数的作用是:缩小图像,同时缩短。如下就是3,2,1,0对应的效果。这里重点说一下最后1个参数。接下来,我们分别进行演示。与(0,0)位置的距离。中,图像的为运算有4种。
2024-08-16 15:14:06
400
原创 09 OpenCV自带颜色表操作
以及1个while循环,我们便可以实现颜色风格的循环转换。opencv提供22种颜色风格的。我们首先把颜色表做成一个枚举数组。,就可以进行颜色风格的转换。
2024-08-16 15:08:17
830
原创 06 OpenCV 滚动条操作1.0 - 调整图像亮度
上一课中,我们调整亮度只能一次一次的去调整,现在我们来试一下通过滚动条调整亮度。中,我们要想在图像上通过滚动条调整亮度,要用到两个API。TrackbarCallback(用户自写)
2024-08-16 15:06:14
268
原创 08 OpenCV 回调函数+键盘响应操作
作者:no.body回调函数(callback)是什么?来源:知乎我们绕点远路来回答这个问题。系统编程(system programming)和应用编程(application programming)。所谓系统编程,简单来说,就是编写库而应用编程就是利用写好的各种库来编写具某种功用的程序,也就是应用。系统程序员会给自己写的库留下一些接口,即API(应用编程接口),以供应用程序员使用。所以在抽象层的图示里,库位于应用的底下。
2024-08-16 15:02:20
557
原创 06 OpenCV 滚动条操作1.0 - 调整图像亮度
上一课中,我们调整亮度只能一次一次的去调整,现在我们来试一下通过滚动条调整亮度。中,我们要想在图像上通过滚动条调整亮度,要用到两个API。TrackbarCallback(用户自写)
2024-08-16 14:56:46
389
原创 05 OpenCV 图像像素的算术操作
图像像素算术操作 - 运算符值的截断 - saturate_cast<>()图像像素算术操作 - 专用函数。
2024-08-16 14:52:54
878
原创 03 OpenCV图像对象的创建与赋值
忽略掉前面的字符,我们只关注Cx,可以很快的发现,Cx即表示通道数。:==相当于浅复制,只复制了矩阵头,指向的是同一个数据块。只会创建图像是不够的,这里我们再说一下Mat对象赋值的事情。什么是Mat呢,Mat其实就是matrix(矩阵)的缩写。Mat对象创建,常用的是创建空白图像。我们看到的图像,就是以数字矩阵的形式存储在计算机中,在。图像depth的枚举值跟通道数无关,相同类型下如。看上图,我们发现Mat对象复制是有三种方法的。图像depth的真实值还要考虑通道数,如。,图像深度的枚举值是一样的。
2024-08-16 14:41:17
487
原创 02 OpenCV的图像色彩空间转换
opencv知识点:色彩空间转换函数 -cvtColor()图像保存 -imwrite()图像显示 -imshow()
2024-08-16 14:30:19
341
原创 C++基础入门
所谓数组,就是一个集合,里面存放了相同类型的数据元素**特点1:**数组中的每个数据元素都是相同的数据类型**特点2:**数组是由连续的内存位置组成的数据类型 数组名[ 数组长度 ];数据类型 数组名[ 数组长度 ] = { 值1,值2 ...};数据类型 数组名[ ] = { 值1,值2 ...};示例//定义方式1//数据类型 数组名[元素个数];//利用下标赋值//利用下标输出//第二种定义方式//数据类型 数组名[元素个数] = {值1,值2 ,值3 ...};
2024-08-14 11:15:51
820
原创 QT常见界面设计组件——字符串的输入输出
其中,上方的几个组件构成了一个GridLayout,下面的几个组件也是一个GridLayout,两个GridLayout又和它们之间的VerticalSpacer构成了一个VerticalLayout。",并在弹出的界面中选择clicked()信号创建槽函数,之后在自动生成的函数体中编写如下的代码,以实现相应功能。QString储存字符串采用的是Unicode码,每一个字符是一个16位的QChar,而不是8位的char,因此QString能够处理中文字段,而且一个汉字算是一个字符。
2024-08-13 17:08:38
263
原创 PyQt5保姆级教程-- 从入门到精通
1.通过标准的QUrl2.从本地装载Qurl.fromLocalFile(url)3.用setHtml直接装载HTML。
2024-08-13 15:56:25
407
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人