自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(103)
  • 资源 (1)
  • 收藏
  • 关注

原创 YOLOv4原文翻译 - v4它终于来了!

论文原文:https://arxiv.org/abs/2004.10934源码:https://github.com/AlexeyAB/darknet写在前面不久之前,YOLO创始人Redmon宣布退出CV界,很多人都觉得真的很惋惜,当然我也不例外。对我而言,YOLO系列的算法是我首个研究的目标检测的算法,我对YOLO算法的感情不言而喻。那天中午,当看到v4提出的消息的时候,真的很高兴...

2020-12-20 16:58:31 41634 9

翻译 使用PyTorch从零构建Transformer

在编码器部分,主要使用N=6个相同的结构堆叠,并对数据进行串行处理。# 编码器部分:N个layer进行叠加# 对输出的x进行layernorm在编码器部分,每一个基本单元(即EncoderLayer类)都由自注意力模块(self-attention)以及前馈前神经网络(Feed Forward Network)两个部分组成。在EncoderLayer类中这两个模块是通过残差结构进行连接了,之后再通过层归一化(LayerNorm)算法进行输出。

2022-11-30 19:20:32 1570

翻译 从零构建神经网络-实现异或门操作

在这一部分内容中,我们的主要目标是使用神经网络从零开始构建一个与、或、异或等逻辑运算门,具体而言这一章节是使用神经网络构建异或逻辑门。逻辑运算门是构建电子单元模块的重要组成部门。顾名思义,逻辑运算门为我们提供逻辑运算操作。就拿异或门操作而言,如上图所示,只有当输入的信号不同的时候,逻辑门才会输出高电平;当输入的信号相同的时候,才会输出低电平。因此,后续将从零介绍如何使用神经网络实现这样一个异或门逻辑运算操作。1 导入模块 首先,我们需...

2022-05-17 11:12:37 1893 1

原创 学习链接记录

在学习的过程中遇到了很有优秀的学习资料(包括博客以及视频等等),因此在这里记录一些自己觉得不错的学习链接。1. 操作系统 视频链接:南京大学2022操作系统-蒋炎岩 博主主页:操作系统:设计与实现 (2022 春季学期)2. 线性代数 知乎:1. MIT线性代数---方程组的几何解释 - 知乎 博客园:线性代数 - 随笔分类 - 我是8位的 - 博客园3. 源码分析 面圈网:C/C++ 日志库源码-C...

2022-05-15 16:13:55 505

转载 C++ Primer - 四种数据类型转换区别

在C++ Primer中详细介绍了static_cast,dynamic_cast,const_cast和reinterpret_cast四种数据类型转换的方法,因此在此进行小结一下。1. static_cast在编写程序的时候,一般所有明确的类型转换都可以使用static_cast,而不提供运行时的检查,因此称之为static。所以需要程序员在编写程序的时候就需要确认数据类型转换的安全性。static_cast主要在以下三种场合使用:1.1 基本数据类型的转...

2022-05-13 09:26:19 219

原创 C++遇到的bug总结

1. error: passing ‘const xxx’ as ‘this’ argument discards qualifiers [-fpermissive]分析:const修饰实例对象调用了非const修饰的成员方法。解决方案:将对象变为非const的,或者使用const修饰成员方法2.error: 'xxx' does not name a type 在复现《C++ Primer》书中的Text Queries源码时,由于多个头文件...

2022-05-12 13:02:06 2132

原创 C++ Primer - TextQuery设计

在C++ Primer书中设计了TextQuery的程序,该程序可以实现从本地加载文章,并记录每个单词位于第几行。当用户输入单词,程序就可以返回所有的包含该单词的一行文字。实验结果如下图所示:因此,我们可以简单分析一下,对于TextQuery类而言,它涉及到哪些数据结构?(1)需要打印某一行的文字,因此我们可以使用vector将每一行的文字都进行保存。(2)当用户输入某个单词时,程序就会打印包含该单词的所有行。因此,就涉及到map数据结果。键是单词,而值则是该...

2022-05-10 21:09:23 513

原创 C和指针-作用域、链接属性以及存储类型

之前对作用域、链接属性以及存储类型这三个概念总是弄混,今天在C和指针上看到了其对着三个定义的解释觉得很受启发,因此就在这里记录一下,方面日后自己进行复习。1. 作用域 当变量在程序中的某个部分被声明之后,它只在程序中的某个区域内可用(作用域其实就是指变量的可用域)。比如,在函数中定义的局部变量就只能在该函数中使用,一旦出了这个函数的就无法进行使用了。目前,主要有代码块作用域、函数作用域、文件作用域以及原型作用域四种。#include <iostream&gt...

2022-05-02 17:18:43 544

原创 设计模式-状态模式

设想一下,现在你正上课,但是一节课随着老师是否关注着你,你都会有不同的状态,比如现在老师正在写板书,你可以偷偷的休息一下;当老师写完板书之后,你就需要老老实实的记笔记了。为了表达动作伴随状态而改变的逻辑,你可以使用if-else或者switch来进行相应的调整。但是在实际过程中,这一状态以及动作并不是固定的,会随机的进行改变,这样就需要经常修改条件语句。为了将状态逻辑与动作行为分离开,我们可以使用状态模式进行编程。状态模式是指允许一个对象在其内部状态改变的时候改变其行为。这个对象看上去就...

2022-04-29 16:33:17 148

原创 设计模式-命令模式

在发送者类与接收者类发送消息以及接受消息之间,可能并不能直接进行对话,或者说发送者不关系接收者是谁,而接收者也不需要发送者是谁。这样的一个关系特别像一个老板说,我不关系你怎么做,我只关系这件事的能不能成功。老板只负责发送命令,而并不关系过程,只关心结果。因此,这样的一个运行机制可以通过命令模式进行实现1. Reciver类的编写class Reciver{public: void action(){ cout << "reciver接受到了命令";.

2022-04-28 21:53:28 1012

原创 设计模式-装饰模式

顾名思义,装饰模式就是在现有类的基础上添加一些装饰。以这篇博客中提供的背景为例,假设现在华为以及小米手机厂商生产出来了一批手机,但是需要给这些手机添加一些装饰,比如给华为手机贴钢化膜、给小米手机配上一个手机壳。这其实并不需要再设计一个类,并在这些手机类的基础上添加一些功能,这样做太麻烦了。一个简单的做法就是给这些手机类添加一个装饰类,在这以及类的基础上,额外添加一些装饰。从上述UML图不难得知,Phone需要作为装饰器类的一个私有成员变量,从而可以对Phone...

2022-04-28 17:24:24 158

原创 设计模式-策略模式

在策略模式中,这篇文章写的就比较好,因此在该文章的基础上进行了微调。策略模式是说,在一个类实际执行某个任务的时候,可能要根据实际情况选择不同的方法(策略),而这个不同方法(策略)的切换就可以通过类的多态来实现,只要当前类中有所有策略的基类,就可以使用指针或者模板进行调整。在缓存器(Cache)模块中,读取数据需要涉及到不同的方法,使用不同的类对每种方法进行封装,那么缓存器在实际应用的过程中就可以随意的调整不同的算法(策略),从而实现最优的效率。1. 抽象接口 ...

2022-04-28 15:07:27 110

原创 设计模式-代理模式

顾名思义,代理模式就是给一个类寻找一个代理类,对其暴露在外的方法进行一定的限制。比如,我们在外找房子的时候通常需要找一个代理(中介),委托中介与房东打交道从而进行房租的租赁等活动。这个代理就可以规避一些我们所不关注的东西,比如这个房子的房主是谁,是通过什么渠1道买的等,这些信息实际上对我们而言可有可无。1. 代理模式如上图所示,Proxy类作为landloard类的代理类,可以代表房东与房客进行商谈,从而隐藏一些信息。在下面的代码中,我们就隐藏了房东对房子的一些隐私...

2022-04-28 14:26:39 108

原创 设计模式-适配器模式

最近马斯克以440亿美元收购了推特,之前两个公司的运行是独立的,但是推特被收购之后,马斯克就需要对推特公司及其其他公司进行消息的发布以及人员的管理。比如现在马斯克需要对SpaceX公司以及Twitter公司进行人员的调整,但是SpaceX公司以及Twitter的公司消息发布的函数不一样。举个栗子,推特公司发布消息的函数叫做twitterPublish(),而在SpaceX公司中发布消息的函数叫做spaceXPublish()。这两个公司发布消息的方法名称不同,但是含义是一样的,现在你作为马斯...

2022-04-27 21:43:58 267

原创 设计模式-外观模式与组合模式

1. 外观模式顾名思义,外观模式就是说将这个类的内部执行流程都进行了封装,程序员只能够“外部”接口进行操作,而具体的执行过程并不可见。比如我们写的C++代码在生成可执行文件的过程之通常要经过预处理、编译、汇编与链接四个步骤,但是在windows的VSCode编译器下我们并不需要操心以上四个流程,我们只需要点击运行就能够得到可执行程序。因此,在VSCode类中,只需要在公共接口中依次进行上述四个步骤即可对现有代码进行运行。 下面就是整个流程代码:#inclu...

2022-04-27 19:36:26 2330

原创 设计模式-迭代器模式

迭代器模式在容器类中经常使用,该模式可以解决两个问题:第一个问题,处于面向对象封装特性的考虑,我们希望程序员尽可能不获取容器的私有数据就能够遍历所有的数据,但是有希望能够提供一个接口,供程序员获取所有的私有数据,因此可以借助迭代器辅助容器类进行数据的访问;第二个问题,在C++中提供了vector、map以及list等容器,他们的提供了不同的方法让程序员去遍历容器中的所有数据,这显然增加了程序员去熟记不同方法的代价,那么能不能给这些容器提供一个统一的接口,从而实现一个接口比遍历不同容器的...

2022-04-27 13:50:30 189

原创 设计模式-观察者模式

观察者模式的应用遍布在我们的生活中,比如在csdn中,当你关注的博主发布新的文章的时候,他的所有粉丝都会收到相关的通知,作为粉丝的你看到这个通知之后,可能会忽略也可能会点进去相关链接查看。因此,以CSDN博主与粉丝之间的关系为例,介绍并使用C++实现这个常用的观察者与消费者模式(发布-订阅模式),为了后续描述方便,使用发布者与订阅者模式代替观察者模式。这其中主要涉及到四个类别:抽象发布者类,具体发布者类,抽象订阅者类以及具体订阅者类。1. 抽象发布者类以及抽象订阅者类 其中,Fan...

2022-04-26 22:16:02 1498

原创 设计模式-模板工厂

在上一节的抽象工厂中,已经实现对某一品牌产品工厂的设计了,但是抽象工厂依然存在一定的问题,就是一旦需要额外新增生产别的产品的话,就依然需要对工厂类进行修改,这显然违背了“对扩展开放,对修改封闭”的原则。为此,提出了模板工厂的设计模式,让整个工厂类从具体的产品中抽离开,利用“模板编程”的思想,即使产品种类发生了变化,做到依然不需要更改工厂类。如上图所示,在抽象工厂类中,我们定义了一个produce纯虚函数,该纯虚函数返回抽象产品类的指针。而在具体的工厂类中,当传递了抽象...

2022-04-26 12:18:04 671 3

原创 设计模式-抽象工厂模式

在工厂方法模式中,我们提出让每个工厂都负责生产一种鞋子。为了扩展每个工厂的生产种类,以LiNing工厂为了,让该工厂在生产鞋子的同时还能够生产衣服。上述模式涉及到的类主要包括:抽象产品类、具体产品类、抽象工厂类以及具体工厂类。1. 抽象产品类在抽象产品类中主要包括鞋类和衣服两个抽象类:class Clothes{public: Clothes(){}; virtual ~Clothes(){}; virtual void wear(...

2022-04-25 20:16:58 342

原创 设计模式-工厂方法模式

在上一节中,我们介绍了简单工厂模式,该模式的特点是我们可以指定工厂去创建什么类型的鞋子类,因为该工厂已经继承了创建所有鞋子类的方法了。但是简单工厂模式的可扩展性较差,一旦我们有新的类型的鞋子需要生产了的话,我们就需要修改工厂类。为了减少对工厂类的修改,提出了工厂方法模式:对每种鞋子都分配一个工厂类,也就是说每个工厂类都只负责生产一类鞋子。这样,一旦有了新种类的鞋子需要生产的时候,我们可以再扩展一个鞋子工厂去负责生产这类鞋子。所以,工厂方法模式又称之为流水线模式。如上图...

2022-04-25 19:47:19 165

原创 设计模式-简单工厂模式

问题背景:一个工厂需要生产耐克鞋子(Nike)以及李宁鞋子(LiNing)两类鞋子,现在你是工程师,你该如何设计一个工厂类,使得整个工程支持生产这两种鞋子呢? 思路:目前已知需要生产两种鞋子,我们可以在工厂类中通过指定名称来创建两种不同的鞋子类。Nike和LiNing都是鞋子类,因此我们可以抽象出Shoes接口,让Nike和LiNing都实现该接口。整个流程主要涉及到三个类:工厂类、抽象产品类以及实际产品类。因此,我们分别实现这三个类就可以了。 1. Sh...

2022-04-25 17:50:17 233

原创 设计模式总结

目前,设计模式主要分为四类:创建者模式、结构型模式、行为模式以及其他模式。为了后续的复习与巩固,本文将针对上述的设计模式进行研究与分析,希望在记录的过程中也能够帮助其他人。创建者模式:工厂方法模式、抽象工厂模式、生成器模式、原型模式与单例模式。结构型模式:适配器模式、桥接模式、组合模式、装饰模式、外观模式、享元模式与代理模式。行为模式:责任链模式、命令模式、迭代器模式、中介者模式、备忘录模式、观察者模式、状态模式、策略模式、模板方法...

2022-04-25 15:43:15 111

原创 C++多线程知识点总结

进程其实可以就可以看做是一个可执行程序,比如在电脑中运行的微信与QQ,这些其实就是一个进程,并且计算机都是以进程为单位分配资源的(所以所进程是资源分配的最小单位)。

2022-04-22 19:03:47 1216

原创 设计模式-生产者与消费者模式

最近正在看C++日志的开源代码,其中多个线程需要向文件中写入日志信息,该将该算法逻辑抽象出来的话就是生产者与消费者设计模式。常见的生产者与消费者模式主要分为四类:单生产者与单消费者模式、单生产者与多消费者模式、多生产者与单消费者模式以及多生产者与多消费这模式。下面将以此对上述的四种生产者与消费者模式进行分析。1 单生产者与单消费者模式在讲设计模式之前,需要明确什么是PV操作。PV操作是在多线程之间实现互斥与同步的算法。P操作(wait)是指只有当信号量大于等于0的时候...

2022-04-21 16:18:06 2229

原创 设计模式-单例模式

单例模式是非常简单且基础的设计模式之一。麻雀虽小五脏俱全,在单例模式的设计过程中依然涉及到众多的知识点,而且一个优秀的单例模式并不是一蹴而就完成的,其中涉及到内存泄漏、多线程以及泛型编程等知识点。因此,本文从网上搜集了些许资料,逐步从简单的单例模式出发,对其进行了不断的优化。单例模式是指该类只能有一个对象。因此,该类的构造函数、析构函数、复制构造函数以及赋值运算符都必须是private的,并且需要提供一个创建对象的公共接口。由于在程序运行期间,这个对象必须一致存在,所以这...

2022-04-20 17:02:13 503 2

原创 VSCode使用总结

1. VSCode配置C++环境(1)配置c_cpp_properties.json文件{ "configurations": [ { "name": "Win32", "includePath": [ "${workspaceFolder}/**" ], "defines": [ "_DEBUG",

2022-04-18 16:26:20 319

原创 NMS算法实现

总结一下NMS算法C++代码以及Python代码的实现(已测试过)NMS算法是目标检测中取出冗余检测框的常用算法,它的基本步骤为:(1)选择某一类物体的所有的检测框和置信度,将其放到一个容器中(2)对检测框的置信度进行降序排序(3)选择容器中,检测框的置信度最大的bbox,将其保存下来,然后与容器中剩余的元素依次进行IOU计算(4)如果IOU计算的结果大于置信度阈值的话,将该检测框及其置信度从容器中剔除出去(5)重复3-4步骤,直至容器为空,才停止算法。1 C++代码实现NMS

2021-09-08 11:13:32 2322 4

原创 [TensorRT] 对UNet进行推理加速

在过去的两周的实习时间里,公司有使用TensorRT对UNet进行推理加速的需求,目前我这边已经取得了一些进展,所以在这里稍微总结一下。1. UNet网络 网络有很多对UNet算法的说明,因为该部分并不是本文的重点,就不详细进行介绍了。为了更好的使用TensorRT的API搭建UNet的网络模型,本文只简单介绍UNet的网络架构,理清Encoder和Decoder阶段之间的关系。 在上图中不难发现,UNet网络主要由三部分组成:下采样部分(Enc...

2021-06-26 11:07:58 3834 2

原创 使用TensorRT对AlphaPose模型进行加速

最近刚完成使用TensorRT对AlphaPose人体姿态估计网络的加速处理,在这里记录一下大概的流程,具体代码我放在这里了。目前主要有三种方式构建TensorRT的engine模型。(1) 第一种是使用模型框架自带的方法生成engine模型,比如TensorFlow和MXNet框架支持直接转成TensorRT的engine模型,这种方式虽然便捷,但是运行效率较低;(2) 第二种是使用C++或者python的API直接构建检测模型,这种方式虽然效率上限高,但是实现步骤较为繁琐,兼容性较低,一旦原

2021-05-07 10:48:19 2633 22

原创 目标检测中mAP计算以及源码解析

目标检测中mAP的计算很基础、很重要,当然经常被别人忽略。这位博主对mAP的分析也非常详细了,但是缺少对整个mAP代码的分析,我斗胆在这里简单分析一下目标检测中mAP的代码。本文的主要代码源自于这个github源码。1. mAP的理论知识1.1 交并比(Intersection Over Union, IoU)交并比使用来衡量两个边界框的重叠程度。公式需要标注边界框和预测边界框,它可以用来判断当前检测的边界框是否有效。具体而言,当与之间的交并比大于交并比阈值的时候,我们将该次的预测边界框视为Tr

2020-12-25 11:19:37 2726 1

原创 原文翻译:Structure Aware Single-stage 3D Object Detection from Point Cloud

0. Abstract基于点云的3D目标检测在自动驾驶任务中扮演者至关重要的角色。当前单阶段的3D检测器使用全卷积的方式,逐步对3D点云进行下采样操作来进行特征提取。然而,经过下采样之后的特征不可避免的丢失空间信息,未能充分利用3D点云的结构信息。在本次任务中,我们提出了一种可以利用3D点云的结构信息从而提高定位精度的单阶段检测器。具体而言,我们设计了一个辅助网络,他能够将骨干网络中的卷积特征转换成点云的点级表征。这个辅助网络通过两个点级级别的监督方法进行联合优化,使其能够指导骨干网络中的卷积特征.

2020-12-19 22:08:29 953 2

翻译 评估深度学习模型的指标:混淆矩阵、准确率、精确率和召回率

在计算机视觉任务重,目标检测用来定位出一张图像上的一个或多个物体。。处理传统的目标检测方法,基于深度学习的模型比如R-CNN和YOLO算法在不同类型的物体检测上都有着优异的检测效果。这些模型接收一张图像作为输入数据,然后返回每一个所检测物体的边界框的坐标。这个教程将会讨论如何计算混淆矩阵、准确率、精确率和召回率。具体而言,主要内容如下:(1)二分类的混淆矩阵(2)多分类的混淆矩阵(3)使用Scikit-learn库来计算混淆矩阵(4)准确率、精确率和召回率计算公式(5)使用精确率还是..

2020-12-14 10:47:18 9575 2

翻译 Processing Point Clouds

博客原文地址:http://ronny.rest/tutorials/module/pointclouds_011. 点云数据点云数据可以由N行、至少包含三列的numpy数组表示,每一行表示这一个点在三维坐标系下的坐标(x, y, z)。如果该点云是从激光雷达中获取,每个点还有一个额外的值,比如“反射值”,它用来衡量激光雷达光束遇到障碍物反射回来的数量。在这种情况下,每个点云数据或许会由N*4的数组来表示。2. 图像坐标系和点云坐标系二维图像坐标系和点云坐标系是两种完全不同.

2020-11-28 11:12:46 477

原创 SA-SSD环境搭建——血与泪的教训

0 说在前面SA-SSD论文:https://www4.comp.polyu.edu.hk/~cslzhang/paper/SA-SSD.pdfSA-SSD源码(pytorch):https://github.com/skyhehe123/SA-SSD/issues1 笔者环境首先,笔者能够跑通整个源码,要感谢很多博主将其经验写成博客分享出来,笔者借鉴的很多博主经验和教训,因此笔者也希望能够将自己的经验分享出来。其次,笔者的整个环境如下: ubuntu 18.04...

2020-11-26 11:00:03 3093 21

原创 全文翻译:Multimodal Neural Networks: RGB-D for Segmantic Segmentation and Object Detection

论文地址点击这里,这篇文章是Scandinavian Conference on Image Analysis (SCIA)的2017年的论文。Abstract这篇论文提出了一个新颖的多模态卷积神经网络框架,它不仅利用颜色信息,而且还利用辅助的输入信息。这个融合的模型实现了一个中层的特征融合,使得这个网络在已有中层特征的基础上,能够利用跨模型的相互依赖信息,这个网络可以用于RGB-D图像理解的工作任务中。目前为止,先进的RGB-D卷积神经网络通常使用只包含颜色信息的数据集上训练得到的权重文件。相

2020-11-10 20:36:26 2989 1

原创 OpenLORIS-Object Datasets

Terms of UseOpenLORIS-Object数据集依照CC BY-ND 4.0许可进行发布。提供在这的数据集是用来评估终身学习目标识别算法的第一个版本,如果在任何学术工作中使用到这个数据集,请引用下面我们的论文。Paper Qi She et al. "OpenLORIS-Object: A Dataset and Benchmark towards Lifelong Object Recognition". arXiv:1911.06487, 2019 Qi She et

2020-11-05 13:57:07 1429 1

原创 第二部分:和查找表相关的问题

在这一部分中主要介绍了和查找表相关的问题,主要包括set模板类和map模板类。set中元素是唯一的,而map中键值key也是唯一的。它们低层都是使用平衡二叉树来实现的,其中的元素存在着一定的顺序性。而unordered_set和unordered_map模板类的低层都是使用哈希表实现的,它们的插入,删除和查找等方法的时间复杂度都是O(1)级别的,相比于set和map的O(nlogn)级别的算法要快很多,相比之下,它们却丧失了元素之间的顺序性!!在某些问题上可能会需要元素之间的顺序性,某些问题却不会。.

2020-10-17 11:23:48 390

原创 第一部分:和数组相关的问题

本系列的博客主要是整理刘宇波老师《玩转算法面试》课程的相关知识点,本系列博客主要有八个部分:(1)数组中常见的问题(2)查找表相关问题(3)链表相关问题(4)栈、队列和优先队列(5)二叉树和递归(6)递归和回溯法(7)动态规划(8)贪心算法在第一部分中,主要介绍了和数组相关的问题,大体上的问题解决方案都和如何划分区域有关。区域的形成离不开左右索引,根据索引的数量和如何动态改变分成了三个部分:单索引、对撞指针和滑动窗口。下面主要针对每一部分进行介绍并针对leetcod.

2020-10-13 21:49:20 232

原创 图论相关知识

这一部分主要复习一下最近学习的图论方面的知识,主要包括以下几个方面(1)图的表示:稀疏图 —— 邻接表;稠密图 —— 邻接矩阵(2)图的遍历:深度优先遍历(可以得到一个图中的连通分量的个数)和广度优先遍历(可以得到无权图的最短路径)(3)最小生成树:Prim算法和Kruskal算法(无权图)(4)最短路径:Dijkstra算法(针对带权图,但是不能包含负权图)和Bellman-Ford算法(针对带负权的图,但不能包含负权环)1 图的表示根据图中边的个数可以分为稠密图和稀疏图。..

2020-10-09 22:05:09 373

原创 并查集相关知识点

并查集是这样的使用数据结构:它可以检测两个节点之间的连通状态。比如下图一个网络中有两堆节点,如何快速准确的判断某两个节点之间的连通性、或者改变某个节点的连通状态,这是并查集需要考虑的问题归纳来说,一个并查集所涉及到的方法有下面两个:(1)union(p, q) --> 合并两个集合(“并”)合并两个集合(“并”)(2)find(p) --> 判断两个元素是否属于同一个集合1 quick find方法显而易见,我们可以创建一个status数组,status数组保存着每个节点

2020-10-04 15:25:02 202

findNumbers.zip

使用OpenCV对图片上的一串数字进行有顺序、从左到右的分割。

2019-09-03

空空如也

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

TA关注的人

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