- 博客(126)
- 资源 (8)
- 收藏
- 关注
原创 【C++设计模式之Decorator装饰模式】
Decorator装饰模式是一种动态扩展对象功能的设计模式,通过组合而非继承来增加对象的职责,避免了继承带来的类膨胀问题。该模式的核心思想包括动态扩展、透明性和组合优于继承。
2025-05-14 09:46:23
925
原创 【C++设计模式之Observer观察者模式】
观察者模式是一种行为设计模式,用于在对象之间建立一对多的依赖关系,使得当一个对象(被观察者)的状态发生变化时,所有依赖于它的对象(观察者)都能自动收到通知并更新。该模式通过松耦合的方式,增强了系统的灵活性和可维护性。
2025-05-09 17:37:53
877
原创 【C++设计模式之Strategy策略模式】
策略模式(Strategy Pattern)是一种行为设计模式,旨在将算法与使用它的客户端解耦,使得算法可以独立于客户端变化。通过定义一系列算法并将其封装在独立的策略类中,策略模式允许在运行时动态切换算法,从而提升代码的灵活性和可维护性。
2025-05-09 14:10:14
1092
原创 【C++设计模式之Template Method Pattern】
模板方法模式(Template Method Pattern)是一种行为设计模式,它定义了一个算法的骨架,并将某些步骤的具体实现延迟到子类中。该模式的核心思想是“不变流程,可变细节”,通过将公共逻辑封装在基类中,允许子类在不改变算法流程的前提下重写特定步骤。这种模式避免了代码重复,并明确了哪些步骤可以扩展。
2025-05-09 10:55:30
583
原创 【写一个简单的service and client(C++)例子——services】
服务是ROS图中节点的另一种通信方式。服务基于呼叫和响应模型,而不是主题的发布者-订阅者模型。虽然主题允许节点订阅数据流并获取持续更新,但服务仅在客户端专门调用它们时提供数据。当节点使用服务进行通信时,发送数据请求的节点称为client节点,响应请求的节点称为service节点。
2024-04-25 16:46:46
865
原创 【写一个简单的 publisher and subscriber (C++)例子】
节点是通过 ROS 图进行通信的可执行进程。节点将通过一个主题以字符串消息的形式相互传递信息。这里使用的示例是一个简单的“talker”和“listener”系统;一个节点发布数据,另一个节点订阅主题,以便它可以接收该数据。
2024-04-25 13:55:16
833
原创 【(Ubuntu22.04 Jammy)安装ROS 2 Iron Irwini】
ROS2 IronIrwini的Debian软件包目前可用于Ubuntu22.04 Jammy。
2023-05-29 09:11:41
1313
原创 (Ubuntu22.04 Jammy)安装ROS2 Humble
Ubuntu22.04 Jammy + ROS2(Humble)的安装教程
2023-04-24 10:52:30
2110
1
原创 【Halcon进行OCR的重要步骤(上)】
Halcon进行OCR的重要步骤(上)前言一、生成训练文件1.1 完整代码1.2 结果二、创建和训练 OCR 分类器2.1 完整代码2.1 结果三、读取数字3.1 完整案例3.2 结果前言本文简要介绍使用 HALCON 进行 OCR。 介绍从训练文件生成到训练再到阅读的所有重要步骤。提示:以下是本篇文章正文内容,下面案例可供参考一、生成训练文件图中显示了一个训练图像,其中第四行中的字符用作训练样本。 对于这个示例图像,分割非常简单,因为字符明显比背景暗。 因此,可以使用阈值。用于训练的字符
2022-05-30 17:56:15
2780
原创 【Halcon联合MFC之光学字符识别(OCR)一】
文章目录OCR1、基本概念1.1 Acquire Image(s)1.2 Segment Image(s)1.3 Train OCR1.4 Read Symbol1.5 Destroy Classifier2、A First Example3、halcon联合MFC3.1 结果3.2 核心代码3.3 详细实现代码链接OCR光学字符识别(OCR)是阅读的技术术语,即识别符号。在HALCON中,OCR 被定义为为图像区域分配解释的任务。这些区域通常代表单个字符,因此我们认为这是读取单个符号。*
2022-05-26 16:04:00
1451
1
原创 一、Window程序运行的内部机制
文章目录1、API与SDK2、窗口与句柄3、消息与消息队列3.1 消息3.2 消息队列3.3 进队消息和不进队消息4、WinMain函数4.1 WinMain函数的定义4.2 窗口的创建4.2.1 设计一个窗口类4.2.2 注册窗口类4.2.3 创建窗口4.2.4 显示及更新窗口4.3 消息循环4.4 编写窗口过程函数5、动手写第一个Windows程序6、小结1、API与SDKAPIWindows操作系统提供了各种各样的函数,以方便我们开发Windows应用程序。这些函数是Windows操作系统
2022-05-10 16:05:07
1488
翻译 【图像变换之边缘检测】
文章目录前言基于OpenCV的边缘检测步骤一、Canny边缘检测算子的步骤Canny 边缘检测示例结果二、sobel算子Sobel算子的使用示例结果三、Laplacian算子Laplacian算子的使用示例scharr滤波器scharr代码示例边缘检测综合示例前言图像变换(image transfrom),将一幅图像转换成图像数据的另一种表现形式。变换最常见的例子就是傅里叶变换(Fourier transform),即将图像转换成源图像数据的另一种表示形式。基于OpenCV的边缘检测霍夫变换重
2022-04-27 14:36:41
566
翻译 【图像轮廓与图像分割修复】
文章目录前言1、查找并绘制轮廓C++代码示例一结果C++代码示例二结果2、寻找物体的凸包C++代码示例一结果C++代码示例二结果3、使用多边形将轮廓包围结果C++代码示例一结果C++代码示例二前言虽然Canny之类的边缘检测算法可以根据像素之间的差异,检测出轮廓边界的像素,但是它并没有将轮廓作为一个整体。如何查找并绘制轮廓如何寻找物体的凸包如何使用多边形逼近物体认识图像的矩如何利用OpenCV进行图像修补1、查找并绘制轮廓一个轮廓一般对应一系列的点,也就是图像中的一条曲线,其表示方
2022-04-26 10:33:25
1103
翻译 【直方图与匹配】
文章目录前言1、图像直方图2、直方图的计算与绘制(1) H-S二维直方图的绘制结果(2) 一维直方图的绘制结果(3) RGB三色直方图的绘制结果3、直方图对比直方图对比结果4、反向投影结果5、模板匹配实现模板匹配:matchTemplate()函数前言在进行物体图像和视频信息分析的过程中,我们常常会习惯于将眼中看到的物体用于直方图(histogram)表示出来,得到比较直观的数据感官展示,直方图可以用来描述各种不同的参数和事物,如物体的色彩分布、物体边缘梯度模板,以及表示目标位置的当前假设的概率分布。
2022-04-24 16:27:28
777
翻译 【角点检测】
角点检测(Corner Detection)是计算机视觉系统中用来获得图像特征的一种方法,广泛应用于运动检测、图像匹配、视频跟踪、三维建模和目标识别等领域中,页称为特征点检测。角点通常被定义为两条边的交点,更严格地说法是,角点的局部邻域应该具有两个不同区域的不同方向的边界。而实际应用中,大多数所谓的角点检测方法检测的是拥有特定特征的图像点,而不仅仅是“角点”。这些特征点在图像中有具体的坐标,并具有某些数学特征,如局部最大或最小灰度、某些梯度特征等。
2022-04-22 10:32:58
4219
原创 【滤波与卷积(二)】
滤波与卷积,boxFilter,blur,GaussianBlur,MedianBlur,bilateralFilter,dilate,erode
2022-04-20 13:54:05
483
翻译 【OpenCV图像处理基础】
OpenCV图像处理基础,包括图像显示、腐蚀、blur模糊、canny边缘检测,视频播放,调用摄像头,彩色目标跟踪
2022-04-18 16:30:16
2514
原创 Halcon初探(C++版)之Edges
Halcon初探(C++版)之Edges上1、一个简单的加载并显示图像的Halcon(C++)程序结果C++代码总结2、边缘检测器1、EdgesImageLanser结果canny结果C++代码总结2、CloseEdges结果C++代码总结3、CloseEdgesLength结果C++代码总结4、DerivateGauss5、SobelDir结果C++代码总结1、一个简单的加载并显示图像的Halcon(C++)程序结果C++代码#include <iostream>#include
2022-04-15 17:11:17
3920
原创 【均值滤波mean】
文章目录Halocn中均值滤波1、gen_mean_filter (Operator)MFC联合Halcon处理效果2、mean_curvature_flow (Operator)MFC联合Halcon处理效果3、mean_image (Operator)4、mean_matrix (Operator)5、mean_n (Operator)6、mean_sp (Operator)7、noise_distribution_mean (Operator)8、region_to_mean (Operator)cl
2022-04-13 17:25:53
3829
翻译 【Opencv测试用例(七)】
Opencv测试用例(七)Chapter091、binaryDescriptors.cpp结果测试代码2、patches.cpp结果测试代码3、detectObjects.cpp结果测试代码Chapter091、binaryDescriptors.cpp结果测试代码#include <iostream>#include <vector>#include <opencv2/core.hpp>#include <opencv2/imgproc.hp
2022-04-08 15:50:03
176
翻译 【Opencv测试用例(六)】
Opencv测试用例(六)Chapter081、interestPoints.cpp结果测试代码Chapter081、interestPoints.cpp结果测试代码#include <iostream>#include<opencv2/opencv.hpp>#include <opencv2/features2d.hpp>#include "harrisDetector.h"static int test();int main(){
2022-04-07 16:17:58
124
翻译 【Opencv测试用例(五)】
Opencv测试用例(四)Chapter062、filter.cpp结果测试代码Chapter071、blobs.cpp结果测试代码2、contours.cpp结果测试代码Chapter062、filter.cpp结果测试代码#include <iostream>#include<opencv2/opencv.hpp>static int test(){ // Read input image std::string path_boldt = "F:/
2022-04-07 15:22:51
348
翻译 【Opencv测试用例(四)】
Opencv测试用例(四)Chaptor051、morphology.cpp结果测试代码2、mserFeatures.cpp结果测试代码3、segment.cpp结果测试代码Chaptor061、derivatives.cpp结果测试代码Chaptor051、morphology.cpp结果测试代码#include<opencv2/opencv.hpp>static int test(){ // Read input image std::string path_bin
2022-04-07 14:05:04
953
翻译 【Opencv测试用例(三)】
Opencv测试用例Chaptor043、histograms.cpp结果测试代码4、integral.cpp结果测试代码5、retrieve.cpp结果测试代码6、tracking.cpp结果测试代码Chaptor043、histograms.cpp结果测试代码#include <iostream>#include<opencv2/opencv.hpp>using namespace std;#include "histogram.h"static in
2022-04-07 10:29:40
622
翻译 【Opencv测试用例(二)】
Opencv测试用例Chapter031、colorDetection.cpp结果测试代码2、extractObject.cpp结果测试代码3、huesaturation.cpp结果测试代码Chapter041、contentFinder.cpp结果测试代码2、finder.cpp结果测试代码Chapter031、colorDetection.cpp结果测试代码头文件colordetector.h#if !defined COLORDETECT#define COLORDETECT#in
2022-04-07 09:09:36
1864
翻译 【Opencv测试用例(一)】
Opencv测试用例一Chapter011、mat.cpp结果测试代码2、logo.cpp结果测试代码3、loadDiaplaySave.cpp结果测试代码Chapter021、addImages.cpp结果测试代码2、colorReduce.cpp结果测试代码3、contrast.cpp结果测试代码3、remapping.cpp结果变换Hough变
2022-03-30 16:53:22
2597
原创 初步图像分析
文章目录一、使用傅里叶变换进行卷积代码示例结果二、用HoughCircles()从灰度图中获取一组圆的序列代码示例结果三、分割代码结果一、使用傅里叶变换进行卷积代码示例#include <opencv2/opencv.hpp>#include <iostream>using namespace std;static void test() { string path = "lena.jpg"; cv::Mat A = cv::imread(path, 0);
2022-03-15 08:55:13
202
原创 常见的图像变换
常见的图像变换一、仿射变换代码结果二、透视变化代码示例结果三、通用变换对数——极坐标变换示例结果一、仿射变换CV_EXPORTS_W void warpAffine( InputArray src, OutputArray dst,InputArray M, Size dsize,int flags = INTER_LINEAR,int borderMode = BORDER_CONSTANT,const Scalar& borderValue = Scalar());CV
2022-03-14 11:04:26
1650
MFC与Halcon混合编程边缘提取之关闭边缘间隙 (close_edges)
2022-06-27
Halcon联合MFC混合编程使用带通滤波器提取线(bandpass_image)
2022-06-27
Halcon联合MFC之高斯沿梯度的二阶导——2nd_ddg边缘检测
2022-06-27
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人