自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 C++调用halcon

参考教程:Halcon之HALCON/C++ 接口的基础知识_halcon c++_yangyang_z的博客-CSDN博客Halcon之使用 HALCON/C++ 编程_halcon c++_yangyang_z的博客-CSDN博客

2023-11-23 16:40:38 307

原创 QT中的lambda表达式

(注意,[&]这里前面不用加&,即这种表达式&[&]是错误的)第二个参数&QPushButton::clicked:表示对象包含的信号(该信号隐藏参数,实际上在槽函数仍然可以调用信号参数列表);该connect只有三个参数,在三个参数情况下,默认第三个槽函数的对象是本类this,也就是第三个参数this被省略了。(bool):函数参数列表,该参数列表接收了信号参数列表,也就是等于信号signal的参数列表;第三个参数:[&](bool){qDebug()<<"device=="<<device};

2023-11-22 16:30:44 1037

原创 函数指针解释

函数指针是一种特殊类型的指针,它指向程序中的函数而不是数据。函数指针可以让你在运行时动态地选择调用哪个函数,这在某些编程情景中非常有用,例如回调函数、动态函数调用和函数表驱动的编程。:通过使用函数指针,你可以调用它所指向的函数,就像调用普通函数一样。:函数指针的声明方式类似于函数声明,但需要将函数名替换为指针名,并使用。:函数指针可以通过将其指向一个函数来进行初始化或赋值。是一个指向接受两个整数参数并返回整数的函数的指针。来表示它是一个指针。

2023-10-16 18:15:13 239

原创 Qt配置Android开发

若出现以下编译错误,是build-tools 28.0.3没有安装,因此我们需要再返回SDK Manager.exe中,去安装它。②虚拟手机模拟器无法将APK导入的问题。2.安装java和SDK,NDK。1.使用Qt5.14.2。

2023-07-30 18:58:41 527

原创 目标检测概述

TP是分类器认为是正样本而且确实是正样本的例子,FP是分类器认为是正样本但实际上不是正样本的例子,Precision翻译成中文就是“分类器认为是正类并且确实是正类的部分占所有分类器认为是正类的比例”。FP(False Positives)意思就是被分为了正样本,但是分错了(事实上这个样本是负样本)。本的例子,Recall翻译成中文就是“分类器认为是正类并且确实是正类的部分占所有确实是正类的比。TP是分类器认为是正样本而且确实是正样本的例子,FN是分类器认为是负样本但实际上不是负样。N是Negative。

2023-07-25 11:02:08 531

原创 图像识别概述

4、conv3三次[3,3]卷积网络,输出的特征层为256,输出net为(56,56,256),再2X2最大池化,输出net。5、conv3三次[3,3]卷积网络,输出的特征层为256,输出net为(28,28,512),再2X2最大池化,输出net。6、conv3三次[3,3]卷积网络,输出的特征层为256,输出net为(14,14,512),再2X2最大池化,输出net。2、conv1两次[3,3]卷积网络,输出的特征层为64,输出为(224,224,64),再2X2最大池化,输出net为。

2023-07-25 10:50:13 1037

原创 深度学习开源框架

4. 自动微分(Automatic Differentiation)工具。3. 计算图(Computation Graph)2. 基于张量的各种操作(Operation)5. BLAS、cuBLAS、cuDNN等拓展包。1. 张量(Tensor)

2023-07-25 10:41:42 76

原创 深度学习推理和训练

• 一般的做法是,在训练的过程中,记录到目前为止最好的validation accuracy,当连续10次Epoch(或者更多次)没达到最佳accuracy时,则可以认为accuracy不再提高了。不同的模型在不同的训练集上训练(每个epoch的训练数据都是随机选择),最后在每个模型用相同的权重来“融合”1. Dropout是随机选择忽略隐层节点,在每个批次的训练过程,由于每次随机忽略的隐层节点都不同,这样就使每次训练的网络都是不一样的, 每次训练都可以当做一个“新”模型;

2023-07-25 10:32:00 668 2

原创 深度学习和神经网络

神经元是组成神经网络的最基本单位,它起初来源于人体,模仿人体的神经元,功能也与人体的神经元一致,得到信号的输入,经过数据处理,然后给出一个结果作为输出或者作为下一个神经元的输入。神经网络是由多个神经元组合而成,前一个神经元的结果作为后一个神经元的输入,依次组合而成,神经网络一般分为三层,第一层作为输入层,最后一层作为输出层,中间的全部是隐含层。在神经网络中,把处于在活跃状态的神经元称为激活态,处于非活跃状态的神经元称为抑制态。2. 结果的平均值不为0,这是我们不希望的,因为这会导致后层的神经元的输入是非。

2023-07-24 16:48:44 1855

原创 OpenCV 算法解析

1. 图像的基本操作读取、显示、存储:通过调用OpenCV中的cv2.imread(),cv2.imshow(),3. 图像的几何变换:平移、缩放、旋转、插值(最近邻、双线性)。2. 在OpenCV中实现将彩色像素转化为灰度像素。4. 对比增强:线性变换、伽马变换、直方图均衡化。6. 图像的二维滤波:cvFilter2D。5. 边缘检测:Sobel、Canny。cv2.write()分别实现。

2023-07-24 15:48:15 1045

原创 图像滤波器

• 图像噪声的产生来自图像获取中的环境条件和传感元器件自身的质量,图像在传输过程中产。1.图像滤波,即在尽量保留图像细节特征的条件下对目标图像的噪声进行抑制,是图像预处理中不可缺少。2.消除图像中的噪声成分叫作图像的平滑化或滤波操作。邻域越大平滑的效果越好,但邻域过大,平滑会使边缘信息损失的越大,从而使输出的图像变得模糊,因此。对数变换将图像的低灰度值部分扩展,将其高灰度值部分压缩,以达到强调图像低灰度部分的目的;中值滤波也是消除图像噪声最常见的手段之一,特别是消除椒盐噪声,中值滤波的效果要比均值滤。

2023-07-24 15:23:13 1016

原创 图像聚类算法

K-Means聚类是最常用的聚类算法,最初起源于信号处理,其目标是将数据点划分为K个类簇。该算法的最大优点是简单、便于理解,运算速度较快,缺点是要在聚类前指定聚集的类簇数。(1)训练数据集存在一个类标记号,判断它是正向数据集(起积极作用,不垃圾邮件),聚类的目的也是把数据分类,但是事先是不知道如何去分的,完全是算法自己来判断各条数。在聚类的结论出来之前,完全不知道每一类有什么特点,一定要根据聚类的结果通过人的经。一个聚类就是一些数据实例的集合,其中处于相同聚类中的数据元素彼此相似,但是处于不。

2023-07-24 14:41:27 122

原创 非极大值抑制

以目标检测为例:目标检测的过程中在同一目标的位置上会产生大量的候选框,这些候选框相互之间可。非极大值抑制,简称为NMS算法,英文为Non-Maximum Suppression。能会有重叠,此时我们需要利用非极大值抑制找到最佳的目标边界框,消除冗余的边界框。通俗意义上是指寻找像素点局部最大值,将非极大值点所对应的灰度值置为0,这样可以剔。2) 如果当前像素的梯度强度与另外两个像素相比最大,则该像素点保留为边缘点,否则。1) 将当前像素的梯度强度与沿正负梯度方向上的两个像素进行比较。除掉一大部分非边缘的点。

2023-07-24 14:04:02 79

原创 边缘提取总结

图像锐化(image sharpening)是补偿图像的轮廓,增强图像的边缘及灰度跳变的部分,使图。Sobel算子是典型的基于一阶导数的边缘检测算子,由于该算子中引入了类似局部平均的运算,因此对噪。2)增强:增强边缘的基础是确定图像各点邻域强度的变化值。3)检测:经过增强的图像,往往邻域中有很多点的梯度值比较大,而在特定的应用中,这些。简单一点说,图像中的高频分量,指的是图像强度(亮度/灰度)变化剧烈的地方,也就。图像中的低频分量,指的是图像强度(亮度/灰度)变换平缓的地方,也就是大片色块的。

2023-07-24 13:28:10 753

原创 上采样,下采样

设i+u, j+v (i, j为正整数, u, v为大于零小于1的小数,下同)为待求象素坐标,则待求象素。如果源图像和目标图像的原点(0,0)均选择左上角,然后根据插值公式计算目标图像每点像素,假。1、最邻近插值The nearest interpolation。下采样原理:(M/s) * (N/s)

2023-07-24 12:44:58 125

原创 Opencv 细节补充

3.RGB转换为浮点数。

2023-07-24 11:27:17 935

原创 图像处理之傅里叶变换

傅里叶变换是在以时间为自变量的“信号”与频率为自变量的“频谱”函数之间的某域研究中较复杂的问题在频域中变得简单起来,从而简化其分析过程;另一方面使信号与系统的物理本质在频域中能更好地被揭示出来。当自变量“时间”或“频率”为连续形式和离散形式的不同组合时,就可以形成各种不同的傅里叶变换对,即“信号”与“频谱”的对应关系。傅里叶变换包含连续傅里叶变换、离散傅里叶变换、快速傅里叶变换和短时傅里叶变换等,在数字图像处理中使用的是二维离散傅里叶变换。

2023-07-21 16:09:42 639

原创 深度学习基础知识:logistic回归

机器学习 · 监督学习篇 III 逻辑回归与广义线性模型 - 知乎

2023-07-21 15:29:57 56

原创 try catch 异常处理

【代码】try catch 异常处理。

2023-06-29 11:03:35 126

原创 bmp字节对齐公式

【代码】bmp字节对齐公式。

2023-06-25 10:15:29 211

原创 双通道线性插值与双立方插值法

参考。

2023-06-06 13:44:09 68

原创 不同指针指向同一区域

不同指针指向同一区域,当其中一个指针被干掉后,另一个指针指向的东西也会消失。

2023-05-25 17:24:07 107

原创 虚函数 静态联编 动态联编

参考文章:c++虚函数详解_Allwen_Tech的博客-CSDN博客C++干货系列——override和final详解 - 知乎

2023-05-25 17:19:26 46

原创 Long, int, uint, char 等整型总结

一个字就是4Byte,也就是2^4不同类型的取值范围。

2023-05-17 15:49:52 3954

原创 图片位深度以及转换办法

bibitcount 为1,2,4,8 代表着每个像素点的色彩深度为 2^n , 即每个像素点需要去参考的colortable深度分别为 2, 4 , 16, 256 ,通俗来讲,bibitcount为 8 ,那它像素点的深度就是256,如果此时它的像素点值是127, 那就要从colortable中去查找,colortable的大小就呼之欲出。当biBitCount = 1,2, 4, 8时,颜色表项分别占2, 4, 16,256个RGBQUAD结构体大小的空间;

2023-05-09 14:58:22 2067 1

原创 FILE fopen,fseek等学习

代码1:下面代码可将1024个字(int)写入到文本文件,fwrite的调用中,size是sizeof(int),count是DATA_SIZE。写完数据后要调用fclose()关闭流,不关闭流的情况下,每次读或写数据后,文件指针都会指向下一个待写或者读数据位置的指针。FILE 文件结构中 , 存在一个指针 , 每次调用文件的读写函数 , 该指针就会移动;1.作用: 在C语言中fopen()函数用于打开指定路径的文件,获取指向该文件的指针。该文件内部的指针指向的位置可以通过 fseek 函数进行改变;

2023-05-08 14:11:02 681

原创 均值滤波 附带简易code

如果M和N的值越大,参与运算的值就越大,参与运算的像素点的数量就越多,图像失真就越严重。卷积核越大,参与到均值运算中的像素就会越多,即当前计算的算的是更多点的像素值的平均值,去噪效果越好,当然花费的计算时间也会越长,同时让图像失真越严重。我们针对图2-1的每一个像素点计算其周围5x5区域内的像素值均值,并将其作为当前像素点的新值,即可得到当前图像的均值滤波结果。如图2-2所示,计算左上角的均值滤波结果时,仅取图中灰色背景的33领域内的像素值的平均值。将使用到的5x5矩阵一般化,可以得到如下图2-5的结果。

2023-05-05 09:22:57 560

原创 Side Window Filtering 边窗滤波

原理分析 通常用常规图像算法做检测类的算法需要将图像特征增强,其中就需要滤波,把噪点去掉,如果直接用滤波,像高斯滤波,中值滤波,均值滤波等等,不仅会把噪点过滤掉,也会把图像的一些细节,包括边缘给模糊掉,从而造成图像信息丢失。有时候为了保留边缘及一些细节信息,就会用到保边滤波算法。之前用过的保边滤波包括双边滤波,表面模糊等算法。这两个算法都比较慢,对于检测类的算法来说,性价比不高。 传统滤波算法以滤波器的核中心与要处理的像素对齐进行计算,不考虑要处理的像素是否是在边缘区域,

2023-04-25 10:42:42 1121

原创 图片位数显示原理与对比

当24位深度时,使用24bit显示一个像素点, 由8bit Red 8bit Green 8bit Blue组合颜色而成,每一个原始颜色(R/G/B)都可以完全显示(0~0xff),所以24位及以上,我们就叫做真彩色。当8/16位深度时,单个原始颜色 (R/G/B)最大只能表示为(0~2^3)/(0~2^6), 无法满足(0~0xff)的范围,所以显示的颜色范围有限。8位: 2^8 = 2^2(B) 2^3(G) 2^3(R) = 256 (256色) 可以总共显示256种颜色。

2023-04-23 12:47:00 338

原创 OpenCV 模板匹配 matchTemplate

1

2023-04-23 11:09:34 2276 1

原创 vscode部署yolov5模型中遇到的问题

这样写代表着编译文件下的所有的.cpp文件,如果是.c就编译所有的c文件,如果不这样写,就会导致只编译main.cpp,这样就会报错。这个过程中,遇到了很多问题,第一,taks.json中的 ”args“选项,其中的。

2023-04-12 15:22:02 529

原创 VSCODE配置OPENCV编译环境(windows)

配置vscode的opencv环境时遇到的一点小问题

2023-04-11 17:33:12 827

原创 C++ 变量命名规则

通常后跟结构体的类型名,用“@@”表示结构类型名的结束。”開始,后面紧跟函数的名字。i 类的实例(instance)对于经常用到的类,也可以定义一些专门的前缀,如:std::string和std::wstring类的前缀可以定义为"st",std::vector类的前缀可以定义为"v"等等。对于__stdcall方式,參数表的開始标识是“@@YG”,对于__cdecl方式则是“@@YA”。类的命名推荐用“名词”或者“形容词+名词”的形式,例如:“CAnalyzer”、“CFVecteor” …

2023-03-28 14:19:03 4174

原创 QT问题解决:

Qt其实自带一个依赖包分析程序,这个程序可以帮助你定位你发布的程序所以来的Qt的库资源,自动将缺少的库拷贝到程序所在的目录。这个Qt工具 windeployqt 位于Qt目录下的msvc\bin文件夹下。请使用cmd命令行,在你有此问题的程序文件夹下,执行命令。这里假设application.exe是你的程序。

2023-03-28 13:52:36 1481

原创 C++ 多线程学习

可以实现多线程的文件:多进程并发使用多进程并发是将一个应用程序划分为多个独立的进程(每个进程只有一个线程),这些独立的进程间可以互相通信,共同完成任务。由于操作系统对进程提供了大量的保护机制,以避免一个进程修改了另一个进程的数据,使用多进程比多线程更容易写出安全的代码。但是这也造就了多进程并发的两个缺点:在进程间的通信,无论是使用信号、套接字,还是文件、管道等方式,其使用要么比较复杂,要么就是速度较慢或者两者兼而有之。运行多个线程的开销很大,操作系统要分配很多的资源来对这些进程进行管理。

2023-03-28 10:17:37 280

原创 <atomic>原子变量与多线程

atomic对int、char、bool等数据结构进行了原子性封装,在多线程环境中,对std::atomic对象的访问不会造成竞争-冒险。利用std::atomic可实现数据结构的无锁设计。所谓的原子操作,取的就是“原子是最小的、不可分割的最小个体”的意义,它表示在多个线程访问同一个全局资源的时候,能够确保所有其他的线程都不在同一时间内访问相同的资源。也就是他确保了在同一时刻只有唯一的线程对这个资源进行访问。这有点类似互斥对象对共享资源的访问的保护,但是原子操作更加接近底层,因而效率更高。

2023-03-28 09:17:53 389

原创 C++ 11 多线程退出以及创建

【代码】C++ 11 多线程退出以及创建。

2023-03-27 17:16:11 294

原创 边缘检测之krisch算子

krisch算子的一些浅显理解

2023-03-23 14:07:36 1230 1

原创 Unordered_Map与Map区别

2023-03-21 10:53:17 359

原创 C++ 设计模式 工厂类设计模式

浅谈工厂模式的一些心得

2023-03-17 14:06:17 58

空空如也

空空如也

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

TA关注的人

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