- 博客(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学习|第十三篇】集合知识点总结
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
原创 【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关注的人
RSS订阅