- 博客(122)
- 资源 (8)
- 收藏
- 关注
原创 【写一个简单的service and client(C++)例子——services】
服务是ROS图中节点的另一种通信方式。服务基于呼叫和响应模型,而不是主题的发布者-订阅者模型。虽然主题允许节点订阅数据流并获取持续更新,但服务仅在客户端专门调用它们时提供数据。当节点使用服务进行通信时,发送数据请求的节点称为client节点,响应请求的节点称为service节点。
2024-04-25 16:46:46 654
原创 【写一个简单的 publisher and subscriber (C++)例子】
节点是通过 ROS 图进行通信的可执行进程。节点将通过一个主题以字符串消息的形式相互传递信息。这里使用的示例是一个简单的“talker”和“listener”系统;一个节点发布数据,另一个节点订阅主题,以便它可以接收该数据。
2024-04-25 13:55:16 660
原创 【(Ubuntu22.04 Jammy)安装ROS 2 Iron Irwini】
ROS2 IronIrwini的Debian软件包目前可用于Ubuntu22.04 Jammy。
2023-05-29 09:11:41 1143
原创 (Ubuntu22.04 Jammy)安装ROS2 Humble
Ubuntu22.04 Jammy + ROS2(Humble)的安装教程
2023-04-24 10:52:30 1823 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 2360
原创 【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 1283 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 1429
翻译 【图像变换之边缘检测】
文章目录前言基于OpenCV的边缘检测步骤一、Canny边缘检测算子的步骤Canny 边缘检测示例结果二、sobel算子Sobel算子的使用示例结果三、Laplacian算子Laplacian算子的使用示例scharr滤波器scharr代码示例边缘检测综合示例前言图像变换(image transfrom),将一幅图像转换成图像数据的另一种表现形式。变换最常见的例子就是傅里叶变换(Fourier transform),即将图像转换成源图像数据的另一种表示形式。基于OpenCV的边缘检测霍夫变换重
2022-04-27 14:36:41 504
翻译 【图像轮廓与图像分割修复】
文章目录前言1、查找并绘制轮廓C++代码示例一结果C++代码示例二结果2、寻找物体的凸包C++代码示例一结果C++代码示例二结果3、使用多边形将轮廓包围结果C++代码示例一结果C++代码示例二前言虽然Canny之类的边缘检测算法可以根据像素之间的差异,检测出轮廓边界的像素,但是它并没有将轮廓作为一个整体。如何查找并绘制轮廓如何寻找物体的凸包如何使用多边形逼近物体认识图像的矩如何利用OpenCV进行图像修补1、查找并绘制轮廓一个轮廓一般对应一系列的点,也就是图像中的一条曲线,其表示方
2022-04-26 10:33:25 978
翻译 【直方图与匹配】
文章目录前言1、图像直方图2、直方图的计算与绘制(1) H-S二维直方图的绘制结果(2) 一维直方图的绘制结果(3) RGB三色直方图的绘制结果3、直方图对比直方图对比结果4、反向投影结果5、模板匹配实现模板匹配:matchTemplate()函数前言在进行物体图像和视频信息分析的过程中,我们常常会习惯于将眼中看到的物体用于直方图(histogram)表示出来,得到比较直观的数据感官展示,直方图可以用来描述各种不同的参数和事物,如物体的色彩分布、物体边缘梯度模板,以及表示目标位置的当前假设的概率分布。
2022-04-24 16:27:28 659
翻译 【角点检测】
角点检测(Corner Detection)是计算机视觉系统中用来获得图像特征的一种方法,广泛应用于运动检测、图像匹配、视频跟踪、三维建模和目标识别等领域中,页称为特征点检测。角点通常被定义为两条边的交点,更严格地说法是,角点的局部邻域应该具有两个不同区域的不同方向的边界。而实际应用中,大多数所谓的角点检测方法检测的是拥有特定特征的图像点,而不仅仅是“角点”。这些特征点在图像中有具体的坐标,并具有某些数学特征,如局部最大或最小灰度、某些梯度特征等。
2022-04-22 10:32:58 3975
原创 【滤波与卷积(二)】
滤波与卷积,boxFilter,blur,GaussianBlur,MedianBlur,bilateralFilter,dilate,erode
2022-04-20 13:54:05 422
翻译 【OpenCV图像处理基础】
OpenCV图像处理基础,包括图像显示、腐蚀、blur模糊、canny边缘检测,视频播放,调用摄像头,彩色目标跟踪
2022-04-18 16:30:16 2373
原创 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 3751
原创 【均值滤波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 3643
翻译 【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 128
翻译 【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 89
翻译 【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 303
翻译 【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 838
翻译 【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 559
翻译 【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 1711
翻译 【Opencv测试用例(一)】
Opencv测试用例一Chapter011、mat.cpp结果测试代码2、logo.cpp结果测试代码3、loadDiaplaySave.cpp结果测试代码Chapter021、addImages.cpp结果测试代码2、colorReduce.cpp结果测试代码3、contrast.cpp结果测试代码3、remapping.cpp结果![在这里插入图片描述](https://img-blog.csdnimg.cn/9092dd2dd234464e97559d392d3c8123.png?x-oss-proc
2022-04-06 15:29:39 1999
翻译 【图像分割】
图像分割引言图像分析系统的基本结构图像分割的概念图像分割的应用邻域图像分割的意义图像分割的基本思路图像分割方法分类图像分割的基本策略一、点、线和边缘检测点的检测-用空域的高通滤波器来检测孤立点线检测边缘检测边缘检测的基本思想一阶微分:用梯度算子来计算二阶微分:通过拉普拉斯来计算梯度算子Sobel梯度算子的使用与分析拉普拉斯拉普拉斯算子的分析二、边缘连接和边界检测边缘连接边缘连接的意义——边检测算法的后处理局部连接处理连接处理的原理局部连接算法描述三、边缘线跟踪局部边缘连接法霍夫(Hough)变换Hough变
2022-03-30 16:53:22 2367
原创 初步图像分析
文章目录一、使用傅里叶变换进行卷积代码示例结果二、用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 165
原创 常见的图像变换
常见的图像变换一、仿射变换代码结果二、透视变化代码示例结果三、通用变换对数——极坐标变换示例结果一、仿射变换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 1601
原创 滤波与卷积(一)
滤波与卷积预备知识边界外推和边界处理自定义边框自定义外推阈值化操作cv::threshold()Otsu算法自适应阈值预备知识本文中有两个重要的概念会经常出现,第一个是滤波器(也称核)以及在OpenCV中具体的运用,第二个是OpenCV在图像的边缘以及图像边界之外的区域如何调用滤波器或其他的方法。边界外推和边界处理OpenCV中的滤波操作(如cv::blur(),cv::erode(),cv::dilate()等)得到的输出图像与源图像的形状是一样的。自定义边框copyMakeBor
2022-03-08 17:37:41 4113
翻译 C++和双重检查锁定的危险
C++和双重检查锁定的危险1 简介2 单例模式和多线程3 双重检查锁定模式多线程只是之后、之前或同时的一件事和另外一个。1 简介在Google新闻组或网络上搜索各种设计模式的名称,您肯定会发现最常提到的一种是 Singleton。但是,尝试将 Singleton 付诸实践,您几乎肯定会遇到一个重要的限制:按照传统实现(以及我们在下面解释的),Singleton 不是线程安全的。已经付出了很多努力来解决这个缺点。最流行的方法之一是其自身的设计模式,即双重检查锁定模式 (DCLP) [13,
2022-03-07 11:32:06 964
翻译 C++设计模式之“Singleton”模式
Singleton单件模式“对象性能”模式面向对象很好地解决了“抽象”的问题,但是必不可免地要付出一定的代价,对于通常情况来讲,面向对象的成本大都可以忽略不计。但是某些情况,面向对象所带来的成本必须谨慎处理。经典模式SingletonFlyweight动机(Motivation)在软件系统中,经常有这样一些特殊的类,必须保证它们在系统中只存在一个实例,才能确保它们的逻辑正确性、以及良好的效率如何绕过常规的构造器,提供一种机制来保证一个类只有一个实例?这应该使类设计者的责任,而不是使用
2022-03-06 12:22:17 589
原创 跨平台和Windows系统
文章目录前言cv::abs()cv::add()cv::addWeighted()前言 cv::abs()计算矩阵中所有元素的绝对值template<typename _Tp> static inlineMatExpr abs(const Mat_<_Tp>& m){ return cv::abs((const Mat&)m);}cv::add()CV_EXPORTS_W void add(InputArray src1,..
2022-03-04 10:28:33 281
Halcon联合MFC之高斯沿梯度的二阶导——2nd_ddg边缘检测
2022-06-27
Halcon联合MFC混合编程使用带通滤波器提取线(bandpass_image)
2022-06-27
MFC与Halcon混合编程边缘提取之关闭边缘间隙 (close_edges)
2022-06-27
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人