自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 c++ 建造者模式

这种模式将对象的构建过程与其表示分离,允许用户通过相同的构建过程创建不同的表示。主要解决在软件系统中,有时候面临着"一个复杂对象"的创建工作,其通常由各个部分的子对象用一定的算法构成;由于需求的变化,这个复杂对象的各个部分经常面临着剧烈的变化,但是将它们组合在一起的算法却相对稳定。例如,在软件开发中,创建一个复杂的数据库连接工厂可能需要指定不同的数据库类型、驱动程序、连接字符串、身份验证信息等。2.提供具体建造者类:具体实现抽象建造者各个部件的接口。扩展性好,各个具体的建造者相互独立,有利于系统的解耦。

2024-07-11 23:14:15 795

原创 c++ 工厂模式

工厂模式(FactoryPattern)是设计模式中的一种,属于创建型模式。它的核心思想是为了解耦对象的创建过程与使用过程,让代码更加灵活,易于扩展和维护。工厂模式通过引入一个工厂类来负责对象的创建,而客户端代码只需要与这个工厂类交互,无须关心具体的对象创建细节。封装性:隐藏了对象创建的具体逻辑,客户端代码不需要知道对象是如何被创建出来的。开放封闭原则:当需要添加新的产品时,只需要增加一个新的具体产品类和修改工厂类(或新增一个工厂子类),不需要修改现有代码,符合软件设计的开放封闭原则。

2024-06-18 22:44:42 859

原创 c++模板模式

模板模式(Template Method Pattern)是一种行为设计模式,它定义了一个操作中的算法骨架,将某些步骤的具体实现延迟到子类中。模板模式使得子类可以在不改变算法结构的情况下,重新定义算法的某些步骤,从而实现代码复用和扩展性。存在一组相似的操作:当有一组操作拥有相同的算法结构,但是某些步骤的实现细节各不相同的时候,可以使用模板模式来定义这些操作的通用部分,并将变化的部分留给子类去实现。

2024-06-16 22:23:30 542

原创 c++ 单例模式

单例模式(SingletonPattern)是一种常用的程序设计模式,属于创建型设计模式的一种。它的核心思想在于控制类的实例化过程,确保在任何情况下,对于特定类来说,在整个应用程序中只存在一个实例,并提供一个全局访问点来获取这个实例。这样做可以确保共享资源的有效管理,减少系统开销,以及在需要全局访问和协调控制时提供便利。唯一性:确保一个类只有一个实例。全局访问点:提供一个全局访问的方法,让其他对象可以轻松地获取到这个唯一的实例。

2024-06-16 00:26:19 767 2

原创 C++ 设计模式

模式:在一定环境中解决一些问题的方案(通俗点就是: 特定环境用固定的套路解决问题)

2024-06-14 23:29:16 468

原创 Qt CAN总线发送和接收案例

【代码】Qt CAN总线发送和接收案例。

2024-06-06 08:33:48 654 2

原创 MFC 使用sapi文字转换为语音

【代码】MFC 使用sapi文字转换为语音。

2024-06-04 14:51:29 424

原创 Qt串口异步通信案例(主机线程)

通常,采集CAN总线数据时,你的设备(尤其是如果它负责发起数据读取操作)会更适合设计成一个主机线程。即使是在等待数据到达的阶段,也是在主控逻辑中通过循环或事件驱动的方式实现,保持对串口数据的监听和处理。在智能工厂的生产线上,有一套自动化测试系统,该系统需要定期向各个测试工位的嵌入式控制器发送指令,收集测试结果,并根据结果调整生产线的速度或发出警报。这种方式允许更精细的控制何时继续执行下一个事务,提高了资源利用效率。MasterThread (主机线程) 示例。MasterThread(主机线程)

2024-05-30 22:48:29 377

原创 Qt串口异步通信案例(从机线程)

【代码】Qt串口异步通信案例。

2024-05-29 00:26:46 340

原创 MFC 发起 HTTP Post 请求 发送MES消息

首先获取WebApi 的Token。生成的JSON 数据大致如下。执行请求Token函数。

2024-05-28 10:15:33 615

原创 32 OpenCV Harris角点检测

【代码】32 OpenCV Harris角点检测。

2024-05-05 22:33:46 332 1

原创 Halcon 深度学习缺陷检测

必须要有Good或者是OK文件夹做标注,剩下两个为逻辑异常和结构异常。已经用 DLT做好标注,训练,和评估,只需修改推理代码。点击检查选择good可以获取所有good图像的照片。> 点击创建训练点击保存更改。通过阈值可以调整判定的区间。滑动热图可以看出误判结果。设置完成后点击开始训练。

2024-05-03 13:58:59 784

原创 Halcon 检测物体定位点

Halcon 中的区域Image : 图像 (input_object): 类型可以是 (多通道-) 图像数组,对象类型为字节、方向、循环、int1、int2、uint2、int4、int8、实数、复数或矢量场。这是输入图像。Domain : 域 (output_object): 类型是区域数组,对象类型。这是输入图像的定义域。

2024-04-30 21:52:47 402

原创 31 OpenCV 距离变换和分水岭算法

2. 使用filter2D与拉普拉斯算子实现图像对比度提高,sharp。1.将白色背景变成黑色-目的是为后面的变换做准备。5. 对距离变换结果进行归一化到[0~1]之间。7. 腐蚀得到每个Peak - erode。8.发现轮廓 – findContours。9. 绘制轮廓- drawContours。3. 转为二值图像通过threshold。6. 使用阈值,再次二值化,得到标记。10.分水岭变换 watershed。11. 对每个分割区域着色输出结果。

2024-04-28 22:27:23 546 1

原创 30 OpenCV 点多边形测试

【代码】30 OpenCV 点多边形测试。

2024-04-25 23:13:11 411

原创 29 OpenCV 图像距

【代码】29 OpenCV 图像距。

2024-04-24 22:04:38 714 1

原创 28 OpenCV 轮廓周围绘制图形

【代码】28 OpenCV 轮廓周围绘制图形。

2024-03-22 21:12:59 355

原创 27 OpenCV 凸包

什么是凸包(Convex Hull),在一个多变形边缘或者内部任意两个点的连线都包含在多边形边界或者内部。包含点集合S中所有点的最小凸多边形称为凸包。

2024-03-21 21:48:01 421

原创 26 OpenCV 查找边缘

【代码】26 OpenCV 查找边缘。

2024-03-21 21:02:34 440

原创 Halcon 路标牌识别

determine_area_of_interest (Image, Rectangle, AreaOfInterest) 函数。

2024-03-21 17:01:21 449

原创 25 OpenCV模板匹配算法

模板匹配就是在整个图像区域发现与给定子图像匹配的小块区域。所以模板匹配首先需要一个模板图像T(给定的子图像)另外需要一个待检测的图像-源图像S工作方法,在带检测图像上,从左到右,从上向下计算模板图像与重叠子图像的匹配度,匹配程度越大,两者相同的可能性越大。其中 TM_SQDIFF 和 TM_SQDIFF_NORMED 方法的相似度值越小代表匹配程度越高,而其他方法则是相反,相似度值越大代表匹配程度越高。

2024-03-19 21:54:10 375

原创 24 OpenCV直方图反向投影

反向投影的作用是:在输入图像中寻找与模板图像最匹配的区域,也就是定位模板图像出现在输入图像的位置。

2024-03-18 21:53:03 575

原创 23 OpenCV 直方图比较

在计算直方图相似度时,常用的方法包括交叉相关性(Correlation)、卡方(Chi-Square)、巴氏距离(Bhattacharyya distance)等。这些方法可以帮助我们量化图像之间的相似性,从而在图像检索、匹配和分类等领域发挥重要作用。直方图比较的目的是衡量两幅图像之间的相似度或差异度。通过计算图像的颜色直方图并对其进行归一化处理,可以得到描述图像颜色分布的特征向量。然后,通过比较这些特征向量,我们可以评估两幅图像在颜色分布上的相似程度。

2024-03-18 21:00:44 518

原创 22 OpenCV 直方图计算

归一化函数的作用是将数据转换为特定范围内的值,通常是[0, 1]或者[-1, 1]。这种转换可以消除不同特征之间的量纲影响,使得不同特征之间具有可比性,有利于模型的训练和优化。归一化还有助于加快模型的收敛速度,提高模型的稳定性和准确性。上述直方图概念是基于图像像素值,其实对图像梯度、每个像素的角度、等一切图像的属性值,我们都可以建立直方图。这个才是直方图的概念真正意义,不过是基于图像像素灰度直方图是最常见的。

2024-03-17 21:22:02 508

原创 21 OpenCV 直方图均衡化

直方图均衡的目的是增强图像的对比度,使得图像中的各个区域的亮度分布更加均匀,从而提高图像的视觉质量。通过对图像的灰度直方图进行调整,将原始图像中灰度值分布不均匀的部分拉伸开来,使得整个灰度范围内的像素值都能得到充分利用,达到增强图像细节、改善图像质量的效果。直方图均衡也常用于图像增强、图像压缩、图像分割等领域。图像直方图,是指对整个图像像在灰度范围内的像素值(0~255)统计出现频率次数,据此生成的直方图,称为图像直方图-直方图。直方图反映了图像灰度的分布情况。

2024-03-17 10:26:10 566

原创 20 OpenCV像素重映

【代码】20 OpenCV像素重映。

2024-03-15 22:36:49 485

原创 19 OpenCV 霍夫曼变换检测圆

因为霍夫圆检测对噪声比较敏感,所以首先要对图像做中值滤波。

2024-03-15 21:38:22 516

原创 18 OpenCV霍夫变换检测直线

【代码】18 OpenCV霍夫变换检测直线。

2024-03-15 21:03:53 542

原创 17 OpenCv Canny算子

高斯模糊 - GaussianBlur灰度转换 - cvtColor计算梯度 – Sobel/Scharr非最大信号抑制高低阈值输出二值图像。

2024-03-13 21:31:41 490

原创 Halcon 使用光流算子检测运动物体

【代码】Halcon 使用光流算子检测运动物体。

2024-03-12 21:19:03 647

原创 16 OpenCV Laplance算子

在二阶导数的时候,最大变化处的值为零即边缘是零值。导数计算,依据此理论我们可以计算图像二阶导数,提取边缘。

2024-03-12 20:59:10 502

原创 15 OpenCV Sobel算子

是离散微分算子(discrete differentiation operator),用来计算图像灰度的近似梯度Soble算子功能集合高斯平滑和微分求导又被称为一阶微分算子,求导算子,在水平和垂直两个方向上求导,得到图像X方法与Y方向梯度图像水平梯度垂直梯度最终图像梯度。

2024-03-11 21:32:11 443

原创 14 OpenCv边缘处理

图像卷积的时候边界像素,不能被卷积操作,原因在于边界像素没有完全跟kernel重叠,所以当3x3滤波时候有1个像素的边缘没有被处理,5x5滤波的时候有2个像素的边缘没有被处理。在卷积开始之前增加边缘像素,填充的像素值为0或者RGB黑色,比如3x3在 四周各填充1个像素的边缘,这样就确保图像的边缘被处理,在卷积处理之。

2024-03-10 10:27:30 444

原创 Halcon局部可变形模板匹配

find_local_deformable_model 找到图像中局部可变形模型的最佳匹配。get_deformable_model_contours 返回可变形模型的轮廓表示形式。gen_ellipse_contour_xld 创建一个对应于椭圆弧的XLD轮廓。create_local_deformable_model 创建局部可变形模板。vector_field_to_real 将矢量场图像转换为两个实值图像。gen_region_contour_xld 从XLD轮廓创建一个区域。

2024-03-09 14:04:13 836

原创 Halcon 比较模板与实物的不同筛选残次品

inspect_cap (rImage, RegionROI, WindowHandle, ModelID, VariationID, RowModel, ColumnModel, BackgroundGVModel, ForegroundGVModel) 比较灰度值的不同。get_variation_model 返回变量模型用于图像比较的图像,返回训练后的图片和差异图像。compare_ext_variation_model 比较图片与模板图片的不同。sobel_amp 索贝尔算子检测边缘(振幅)

2024-03-09 10:45:38 881

原创 13 OpenCv自定义线性滤波

把kernel放到像素数组之上,求锚点周围覆盖的像素乘积之和(包括锚点),用来替换锚点覆盖下像素点值称为卷积处理。

2024-03-08 21:33:56 515

原创 12 OpenCv阈值处理

实际上是基于图片亮度的一个黑白分界值,默认值是50%中性灰,即128,亮度高于128(<50%的灰)的会变白,低于128(>50%的灰)的会变黑。为了从一副图像中提取出我们需要的部分,应该用图像中的每一个像素点的灰度值与选取的阈值进行比较,并作出相应的判断。(注意:阈值的选取依赖于具体的问题。左下方的图表示图像像素点Src(x,y)值分布情况,蓝色水平线表示阈值。左下方的图表示图像像素点Src(x,y)值分布情况,蓝色水平线表示阈值。左下方的图表示图像像素点Src(x,y)值分布情况,蓝色水平线表示阈值。

2024-03-07 22:16:09 711

原创 11 OpenCV 上采样与降采样,高斯不同(DOG)

定义:就是把同一张图像在不同的参数下做高斯模糊之后的结果相减,得到的输出图像。称为高斯不同(DOG)高斯不同是图像的内在特征,在灰度图像增强、角点检测中经常用到。

2024-03-07 21:33:30 548

原创 Halcon 颜色检测

add_samples_image_class_mlp 将图像中的训练样本添加到多层感知器的训练数据中。create_color_trans_lut — 创建RGB颜色空间到任意颜色空间的图像转换查找表。create_class_lut_gmm 使用高斯混合模型创建查找表,对字节图像进行分类。classify_image_class_mlp 使用多层感知器对图像进行分类。add_samples_image_class_gmm 添加样本。classify_image_class_lut 颜色分类表。

2024-03-07 10:18:37 1290

原创 10 OpenCV 形态学的应用

想法:把获取二值化的图片轮廓,对直线进行开闭运算。adaptiveThreshold 二值化算子。

2024-03-05 22:02:06 869

CCD 背光台对于串口的读写,配置文件的设置,手动测试(1)

CCD 背光台对于串口的读写,配置文件的设置,手动测试(1)

2024-07-12

MFC 使用sapi文字转换为语音

MFC 使用sapi文字转换为语音

2024-06-04

mfc 汽车按钮综合测试平台

mfc 汽车按钮综合测试平台

2024-03-19

MFC 汽车按钮界面控件

汽车按钮的Active下载动态库控件

2024-03-16

MFC 皮肤库软件美化mfc界面

MFC 皮肤库软件美化mfc界面

2024-02-22

通过串口解析CAN总线数据

通过串口解析CAN总线数据

2023-12-11

10、QtCharts调整曲线大小

10、QtCharts调整曲线大小

2023-11-16

9、QtCharts 人工调整曲线数值

9、QtCharts 人工调整曲线数值

2023-11-15

Qt 串口AD采样,采集串口电压值

Qt 串口AD采样,采集串口电压值

2023-11-14

Qt 线程串口读写串口数据

Qt 线程串口读写串口数据

2023-11-13

Qt 线程串口读写串口数据

Qt 线程串口读写串口数据

2023-11-13

Qt 上位机串口通信简单Demo

Qt 上位机串口通信简单Demo

2023-11-11

8、QtCharts 获取图例隐藏曲线,移动画布

8、QtCharts 获取图例隐藏曲线,移动画布

2023-11-08

Qt QtableWidget自定义表格

#ifndef GRIDCTRL_H #define GRIDCTRL_H #include <QWidget> #include <QTableWidget> #include <QTableWidget> #include <QHeaderView> #include <QScrollBar> #include <QTime> #include <QComboBox> #include <QProgressBar> #include <QPushButton> #include <QStyledItemDelegate> #include <QHBoxLayout> #include <QLineEdit> #include <QCheckBox> #include <QMenu> #include <QDebug> #include <QAction> class GridCtrl:public QTableWidget { Q_OBJECT public: GridCtrl(QWidget* parent= nullptr); ~GridCtrl()

2023-11-07

7、QtCharts 获取数值曲线内容

7、QtCharts 获取数值曲线内容

2023-11-07

6、QtCharts 悬浮曲线效果

6、QtCharts 悬浮曲线效果

2023-11-04

5、QtCharts 曲线美化

5、QtCharts 曲线美化

2023-11-01

4、QtCharts 做心电图

4、QtCharts 做心电图

2023-10-31

3、QtCharts 动态曲线图

3、QtCharts 动态曲线图

2023-10-31

Qt 序列化函数和反序列化函数

Qt 序列化函数和反序列化函数

2023-10-25

串口,检测电压值的波动情况

串口,检测电压值的波动情况

2023-09-24

mfc 连接ODBC数据库以及配置ip文件操作

mfc 连接ODBC数据库以及配置ip文件操作

2023-09-11

mfc 浮动窗口,窗口自动停靠浮动

窗口自动停靠浮动

2023-09-07

MFC 可以修改Item项的CListBox

MFC 可以修改Item项的CListBox

2023-09-04

MFC管理系统,可以进行修改删除

简单的管理系统

2023-07-05

空空如也

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

TA关注的人

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