自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【从零开始java学习|第二十四篇】Hashmap相关知识点

HashMap 是 Java 中基于哈希表的高效键值对存储结构,核心依赖 “哈希函数 - 数组 - 链表 / 红黑树” 的组合实现O(1)级操作。其底层结构在 JDK8 中引入红黑树优化了哈希冲突处理,扩容机制通过 2 的幂容量保证索引分布均匀。

2025-10-24 16:12:10 980

原创 【从零开始java学习|第二十三篇】泛型体系与通配符

Java泛型是集合框架的核心特性,主要包括泛型类(如ArrayList<E>)、泛型方法(如Collections.sort())、泛型接口(如List<E>)和泛型通配符(?、?extends T、?super T)四种实现方式。

2025-10-14 09:35:53 1021

原创 【从零开始java学习|第二十二篇】集合进阶之collection

本文概述了Java集合框架的核心接口和实现类。Collection是单列集合的根接口,其子接口List(有序可重复)和Set(无序不重复)形成两大分支,各有特点鲜明的实现类:ArrayList(数组)、LinkedList(链表)、HashSet(哈希表)、TreeSet(红黑树)等。

2025-10-11 19:08:57 921

原创 【从零开始java学习|第二十一篇】包装类是干嘛的

Java包装类是将基本数据类型对象化的封装类,主要用于适配集合框架、泛型等面向对象场景。8种基本数据类型都有对应的包装类,数值型继承Number类,非数值型继承Object类。

2025-09-30 18:17:59 788

原创 【从零开始java学习|第二十篇】常用API之Object类

本文总结了Java中Object类的三个核心方法:toString()、equals()和clone()。

2025-09-24 15:14:51 803

原创 【从零开始java学习|第十九篇】为什么需要内部类

Java内部类是定义在外部类内部的类,主要分为四种类型:成员内部类、静态内部类、局部内部类和匿名内部类。成员内部类依赖外部类实例,可访问外部类所有成员;静态内部类不依赖外部类实例,仅能访问外部类静态成员;局部内部类定义在方法内,作用域受限;匿名内部类则是没有类名的一次性实现类。内部类能增强封装性、简化代码结构,并可间接实现多继承效果。

2025-09-19 11:38:00 709

原创 【从零开始java学习|第十八篇】抽象类与接口

抽象类通过abstract定义,包含抽象方法和普通方法,用于规范子类行为(如Animal类);接口用interface定义,强调能力扩展(如Swim接口)。JDK8后接口支持default和static方法。

2025-09-17 20:27:13 901

原创 【从零开始java学习|第十七篇】面向对象进阶

本文系统介绍了Java中包、final关键字、权限修饰符和代码块的核心概念及应用。包通过目录结构解决类名冲突并实现分类管理,结合default权限控制访问范围。

2025-09-16 20:11:45 991

原创 【从零开始java学习|第十六篇】什么是多态

Java多态是面向对象编程的核心特性,指同一方法在不同对象上表现出不同行为。实现多态需要继承、方法重写和父类引用指向子类对象。

2025-09-16 11:31:53 682

原创 【从零开始java学习|第十五篇】什么是继承

继承是 Java OOP 的核心支柱,核心是 “代码复用 + 体系化设计”。掌握继承的特点(单继承、多层继承)、子类继承范围(按访问修饰符区分)、成员访问规则(变量隐藏、方法重写)、构造调用逻辑(先父后子),以及this/super的用法,是理解多态、抽象类、接口的基础,也是面试中考察 Java 基础是否扎实的关键。

2025-09-15 17:36:37 1032

原创 【从零开始java学习|第十四篇】static静态关键字

摘要: static关键字用于实现类级别的成员共享,可修饰变量、方法、代码块和内部类。静态成员在类加载时初始化,所有对象共享同一份,无需实例化即可访问。

2025-09-14 20:02:09 653

原创 【从零开始java学习|小结】记录学习和编程中的问题

这个文章用来持续更新我学习和编程中的困惑与答案。

2025-09-14 16:40:27 227

原创 【从零开始java学习|第十三篇】集合知识点总结

Java集合主要解决数组的局限性,提供动态存储、丰富功能和标准接口。分为Collection(List/Set/Queue)和Map两大体系。核心实现类包括ArrayList(动态数组)、LinkedList(链表)、HashSet(哈希表)、HashMap(数组+链表/红黑树)等。

2025-09-11 11:59:08 757

原创 【从零开始java学习|第十三篇】字符串究极知识总结

本文全面解析Java字符串处理,重点介绍String、StringBuilder和StringJoiner三类核心字符串类。

2025-09-08 23:55:04 934

原创 【从零开始java学习|第十二篇】常用API

Java API是开发者的核心工具箱,提供预定义的类、接口和方法,帮助开发者高效实现字符串处理、数学运算、数组操作、日期处理、集合管理和输入输出等功能。

2025-09-08 11:33:29 798

原创 【从零开始java学习|第十一篇】构造一个JavaBean

JavaBean是符合特定规范的Java类,作为标准化数据封装载体,具有封装性、规范性、兼容性和可重用性。

2025-09-07 11:54:23 840

原创 【从零开始java学习|第十篇】面向对象

面向对象编程(OOP)以对象为核心,通过封装、继承、多态三大特征实现代码复用和维护。类是对象的模板,定义属性和方法;对象是类的实例,通过new创建。封装通过private保护数据,提供getter/setter方法控制访问。this关键字用于区分局部变量和成员变量。构造方法用于初始化对象,分为无参和带参两种形式,若未定义则编译器自动生成默认构造方法。理解这些概念有助于编写结构清晰、易于扩展的面向对象程序。

2025-08-30 20:21:21 849

原创 【从零开始java学习|第九篇】方法的相关知识与练习

本文系统介绍了Java方法的核心概念与使用方法。通过实例演示了数组操作等常见应用场景,强调方法在代码组织和维护中的重要性。

2025-08-22 21:40:54 788

原创 【从零开始java学习|第八篇】数组相关知识与练习

本文介绍了Java数组的基本概念与操作方法。数组是存储相同类型数据的引用类型,长度固定且元素连续存储。文章详细讲解了静态/动态初始化、元素访问、数组遍历等基础操作,以及数组内存模型和常见问题(如索引越界)。

2025-08-21 15:36:55 687

原创 【从零开始java学习|第七篇】判断与循环语句

本文介绍了Java中的流程控制语句,包括分支结构和循环结构。文章通过具体示例演示了各语句的使用场景和注意事项,并提供了练习题帮助理解。

2025-08-17 00:34:11 664

原创 【从零开始java学习|第六篇】运算符的使用与注意事项

本文系统介绍了Java运算符的分类与使用规则。主要内容包括:算术运算符(二元和一元)、类型转换(隐式与强制)、字符串的"+"操作、赋值运算符(基本和复合)、关系运算符、逻辑运算符(非短路与短路)、三元运算符以及运算符优先级。

2025-08-14 22:26:35 837

原创 【从零开始java学习|第五篇】项目、模块、包、类的概念与联系

本文系统介绍了IntelliJ IDEA中Java项目的层级结构。项目(Project)作为顶层容器,包含多个功能独立的模块(Module);模块内通过包(Package)分类管理类(Class),形成"项目→模块→包→类"的层级关系。

2025-08-13 23:05:27 930

原创 【从零开始java学习|第四篇】IntelliJ IDEA 入门指南

本文全面介绍Java开发神器IntelliJ IDEA的安装使用与高效开发技巧。

2025-08-13 00:00:08 1443 3

原创 【从零开始java学习|第三篇】变量与数据类型的关联

本文系统介绍了Java数据类型与变量的核心概念。数据类型分为基本类型(四类八种:整数、浮点、字符、布尔)和引用类型(存储对象地址)。变量作为数据的容器,其使用需遵循类型规则,包括定义时赋值、同一作用域内不重名等要点。

2025-08-12 23:22:01 867

原创 【从零开始java学习|第二篇】java中的字面量

Java中的字面量是直接书写的固定数据值,分为整型、浮点型、字符串、字符、布尔和null六类。字面量是固定值,与可变变量不同,编译器通过其书写格式判断数据类型。掌握各类字面量的书写规则对编程至关重要。

2025-08-11 18:27:33 902

原创 【从零开始java学习|第一篇】java中的名词概念(JDK、JVM、JRE等等)

要入门 Java,理解核心概念之间的关系是基础。我是对Java 中最核心的基础概念、工具及相关名词进行了整理,包含它们的含义、区别和记忆方法。

2025-08-11 12:11:17 1632

原创 【从零开始学习大模型】什么是MCP协议

MCP(Model Context Protocol)是由Anthropic推出的标准化协议,用于连接大语言模型与外部数据源。它采用客户端-服务器架构,使智能体能够通过标准化接口访问各类外部资源。

2025-07-16 15:07:51 923

原创 使用 nano 文本编辑器修改 ~/.bashrc 文件与一些快捷键

希望这些步骤能帮助你顺利完成操作!

2025-04-11 17:12:01 1358

原创 COCO格式的数据集合并方法

两个 COCO 格式的数据集合并

2025-04-03 16:30:43 425

原创 【Git】代码的耦合、抽离与封装,养成良好习惯

我们知道,PR,全称Pull Request(拉取请求),是一种非常重要的协作机制,它是 Git 和等代码托管平台中常见的功能。在开源项目中,Pull Request 被广泛用于参与社区贡献,从而促进项目的发展。而有些成员会选择无脑式的写法,处处copy,而不会进行内容的抽离和封装,大大增加了代码的耦合性,这显然是不对的,此文在于规范自己,同时也对入门者给予提醒。

2025-01-27 16:23:05 1241

原创 python数字图像处理基础(十二)——银行卡识别

感兴趣区域。机器视觉、图像处理中,从被处理的图像以方框、圆、椭圆、不规则多边形等方式勾勒出需要处理的区域,称为感兴趣区域,ROI。在Halcon、OpenCV、Matlab等机器视觉软件上常用到各种算子(Operator)和函数来求得感兴趣区域ROI,并进行图像的下一步处理。2.模板要求:输入模板必须带有所有的数字,且字体与识别的银行卡号一样输入:模板图像输出:0-9各个数字模板流程:(1)输入模板图像(2)模板图像转换为灰度图(3)灰度图转换为二值图(4)找到所有数字的外轮廓。

2024-01-19 15:17:23 1573 3

原创 python数字图像处理基础(十一)——光流估计

具体来说,该算法考虑图像中的每个像素周围的小邻域,并假设该邻域内的像素强度变化可以用一个位移向量来描述。光流估计的目标是找到一个场景中每个像素点的运动向量,表示它在图像中的位移。通过了解图像序列中物体的运动,我们可以更好地理解场景的动态变化,从而支持许多应用,如行为分析、目标跟踪和视频稳定。是空间运动物体在观测成像平面上的像素运动的“瞬时速度”,根据各个像素点的速度矢量特征,可以对图像进行动态分析,例如目标跟踪。它假设一个小的图像块内的像素强度变化是线性的,并通过解一个最小二乘问题来计算局部运动。

2024-01-19 14:52:32 2056

原创 python数字图像处理基础(十)——背景建模

其基本思想是通过对视频序列中的像素进行建模,找到视频中的静态背景,并将不同的像素标记为背景和前景,从而使后续的对象检测和跟踪更为可靠。由于场景中的目标在运动,目标的影像在不同图像帧中的位置不同。在测试阶段,对新来像素点的值与混合高斯模型中的每一个均值进行比较,如果其差值在2倍的方差之间的话,则认为是背景,否则认为是前景。3.当后面来的像素值时,与前面已有的高斯的均值比较,如果该像素点的值与其模型均值差在3倍的方差内,则属于该分布,并对其进行参数更新。等,它们也可以用于不同的场景和需求。

2024-01-18 23:07:27 1809 1

原创 python数字图像处理基础(九)——特征匹配

利用两个图像中至少四个特征点能够求解一个单应性矩阵(homography matrix),然后用这个单应性矩阵能够将图像1中的某个坐标变换到图像2中对应的位置。基本的思想是:数据中包含正确的点和噪声点,合理的模型应该能够在描述正确数据点的同时摒弃噪声点。而RANSAC算法则通过随机采样和一致性检验,从包含噪声的数据中估计出正确的模型参数,对于一些存在噪声和异常值的情况,RANSAC能够更稳健地估计模型。你提到的使用SIFT找到特征点,并通过单应性矩阵将图像进行变换,是一种常见的方法。通过SIFT找特征点。

2024-01-18 22:50:57 5580 5

原创 python数字图像处理基础(八)——harris角点检测、图像尺度空间、SIFT算法

让选择的特征点更加准确:把图像首先做一个金字塔,金字塔中每一层做不同的高斯滤波,让每一层图像进行不同程度的模糊,通过差分的方法选出最有价值的点,点的选择方法:DoG空间极值检测——在3X3的三维像素区域内(类似魔方)将中心点与周围26个像素点进行比较,得到候选关键点;然而计算机要有相同的能力却不是那么的容易,在未知的场景中,计算机视觉并不能提供物体的尺度大小,其中的一种方法是把物体不同尺度下的图像都提供给机器,让机器能够对物体在不同的尺度下有一个统一的认知。角点是图像中局部区域的交叉点或者突出的特征点。

2024-01-18 22:43:38 2751 1

原创 python数字图像处理基础(七)——直方图均衡化、傅里叶变换

使用一个60×60的矩形窗口进行蒙板操作,去除低频分量,使用函数np.fft.ifftshift将图像中心平移回左上角,然后使用函数 np.ifft2()进行FFT逆变换,将得到的复数结果取绝对值。(个人理解,在图像问题当中,频域是指图像的灰度变化,也就是灰度图像的梯度值,这个和轮廓的原理差不多,灰度值变化剧烈的叫做高频分量,例如边界和噪声。:通过傅里叶变换,将图像转化为频谱图,而低通滤波和高通滤波则是傅里叶变换的逆变换,即通过对频谱图进行一些操作(保留低频/保留高频),从而达到改变原始图像的效果。

2024-01-17 23:36:24 3373

原创 python数字图像处理基础(六)——模板匹配、直方图

你可以将直方图视为图形或绘图,从而为你提供有关图像强度分布的总体思路。它是X轴上的像素值(范围从0到255,并非总是)和Y轴上图像中相应像素数量的绘图。

2024-01-17 23:30:53 1958

原创 python数字图像处理基础(五)——Canny边缘检测、图像金字塔、图像分割

该函数还可返回一个可选的hiararchy结果,这是一个ndarray,其中的元素个数和轮廓个数相同,每个轮廓contours[i]对应4个hierarchy元素hierarchy[i] [0] ~hierarchy[i] [3],分别表示后一个轮廓、前一个轮廓、父轮廓、内嵌轮廓的索引编号,如果没有对应项,则该值为负数。基于聚类的算法是基于事物之间的相似性作为类划分的标准,即根据样本集的内部结构将其划分为若干子类,以使相同类型的类尽可能相似、不同的类型的类尽可能不相似。3)图像中的对象区域用部分像素标记。

2024-01-17 23:14:57 2917

原创 python数字图像处理基础(四)——图像平滑处理、形态学操作、图像梯度

图像函数f(x,y)在点(x,y)的梯度是一个具有大小和方向的矢量,梯度的方向是函数f(x,y)变化最快的方向,当图像中存在边缘时,一定有较大的梯度值,相反,当图像中有比较平滑的部分时,灰度值变化较小,则相应的梯度也较小,图像处理中把梯度的模简称为梯度。让临近的像素具有更高的重要度,对周围像素计算加权平均值,较近的像素具有较大的权重值。与腐蚀相反,与卷积核对应的原图像的像素值中只要有一个是1,中心元素的像素值就是1。白到黑是正数,黑到白就是负数了,所有的负数会被截断,为0,即都是黑的。

2024-01-16 21:29:31 3175 2

原创 python数字图像处理基础(三)——图像融合、图形绘制、阈值操作、色彩分割

如果你想识别红色或是蓝色,可以直接将改成或是。其中color_dist内包含的是颜色在HSV模式下的范围。例:将一副图像从rgb颜色空间转换到hsv颜色空间,颜色去除白色背景部分。

2024-01-16 21:07:14 1609 1

空空如也

空空如也

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

TA关注的人

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