- 博客(34)
- 收藏
- 关注
原创 Git相关操作命令
拉取代码git clone https/ssh查看当前状态git status创建分支git checkout -b 分支名查看当前分支(列出本地所有分支,当前分支高亮并且前面有*号)git branch切换分支git checkout 分支名git switch -c 分支名添加文件git add .提交文件git commit -m ""提交代码到远程仓库git push origin 分支名修改仓库,可以更改orig
2022-05-30 11:22:49
267
原创 创建栈和队列的方式
1.创建栈的方式Deque<> stack = new LinkedList<>();//推荐!!Stack<> stack = new Stack<>();2.创建队列的方式Queue<> queue= new LinkedList<>();//Queue<> queue= new PriorityQueue<>();//优先队列,PriorityQueue其实是一种特殊的队列,即优先队
2022-01-03 21:08:41
552
原创 停车场信息管理系统
停车场信息管理系统(基于SSM的Java开发项目)一.MVC架构模式模型-视图-控制器模式,也称为MVC模式(Model View Controller)。用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。MVC被独特的发展起来用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的结构中。它把软件系统分为三个基本部分: 模型(Model):负责存储系统的中心数据。 视图(View
2021-12-16 16:46:54
3979
1
原创 Java中PriorityQueue构建大顶堆方法
1.PriorityQueue概述Java中PriorityQueue通过二叉小顶堆实现,可以用一棵完全二叉树表示。有一种特殊的队列叫做PriorityQueue,即优先队列。优先队列的作用是能保证每次取出的元素都是队列中权值最小的(Java的优先队列每次取最小元素,及默认是小顶堆)。元素大小的评判可以通过元素本身的自然顺序,也可以通过构造时传入的比较器(如:Comparator)。Java中PriorityQueue实现了Queue接口,不允许放入null元素;其通过堆实现,具体说是通过完全二
2021-11-07 17:01:39
1276
原创 顺序存储二叉树
顺序存储二叉树的概念从数据存储来看,数组存储方式和树的存储方式可以相互转换,即数组可以转换成树,树也可以转换成数组。顺序存储二叉树的特点:1.顺序二叉树通常只考虑完全二叉树2.第n个元素的左子节点为 2 * n + 13.第n个元素的右子节点为 2 * n + 24.第n个元素的父节点为 (n-1) / 25.n : 表示二叉树中的第几个元素(按0开始编号 如图所示)...
2021-09-16 17:12:15
177
原创 java得到数组最大的数和其位数
//数组中最大的数int max = nums[0]; //假设第一数就是最大数for(int i = 1; i < nums.length; i++) { if (nums[i] > max) { max = nums[i]; }}//数组中的最大数的位数int maxLength = (max + "").length();
2021-09-07 15:29:45
342
原创 计算java程序运行所花费时间
1.使用System.currentTimeMillis()方法。long l1 = System.currentTimeMillis();//要计算的程序,比如测试冒泡排序bubbleSort(arr);long l2 = System.currentTimeMillis();System.out.println("程序运行花费时间" + (l1-l2));2.将测试程序执行后的时间和测试程序执行前的时间相减即可得测试程序花费时间。(1)import java.util.D
2021-09-05 15:49:33
1031
原创 数组模拟队列与环形队列
队列队列是一个有序列表,可以用数组或是链表来实现。 遵循先入先出的原则。即:先存入队列的数据,要先取出。后存入的要后取出。front: 指向队列头的前一个元素,初始值front=-1。rear:指向队列尾,即 queue[rear] 就是队列的最后一个数据,初始值rear=-1。1.将尾指针往后移:rear+1 ,队列为空的条件:front == rear 。2.若尾指针 rear 小于队列的最大下标 maxsize-1,则将数据存入 rear所指的数组元素中,否则无法存入数据。 队列为
2021-08-23 16:09:31
100
原创 java中键盘输入语句
Scanner scanner = new Scanner(System.in);key = scanner.next().charAt(0);//接收一个字符String s1=scanner.nextLine( ); //接收字符串String s2=scanner.next( ); //接收字符串,但next()函数不会接收回车符和tab,或者空格键等int in = scanner.nextInt();//接收一个int数值double le=scanner.nextDoubl.
2021-08-20 15:41:39
3293
原创 MATLAB中颜色和线条对应的标识符
1.颜色在MATLAB中plot函数代表不同颜色的字母(标识符)共有8种:k:黑色;b:蓝色;w:白色;y:黄色;g:绿色;c:青色;m:紫红色;r:红色;2.线条- 实线(为默认线条);: 虚线-- 双划线:. 点划线...
2021-08-05 12:29:48
32228
原创 java中获取元素在int数组中的索引
1.自己编写方法(函数)publicintgetIntIndex(int[]nums,intkey){for(inti=0;i<nums.length;i++){if(nums[i]==key){returni;}}return -1;}2.使用java自带函数(1).将int数组装箱为Inte...
2021-08-03 12:58:20
3347
原创 图像的阈值处理
一般情况下,一张图片分为前景和背景,我们感兴趣的一般的是前景部分,所以我们一般使用阈值将前景和背景分割开来,使我们感兴趣的图像的像素值为1,不感兴趣的我0,有时一张图我们会有几个不同的感兴趣区域(不在同一个灰度区域),这时我们可以用多个阈值进行分割,这就是阈值处理。单个阈值:两个阈值:示意图如下:1.基本全局阈值处理一般选取阈值就是图像直方图的视觉检测。将区分度大的两个灰度级部分之间进行划分,取T为阈值来分开它们。在此基础上学习一种自动地选择阈值的算法,方法如下:
2021-07-31 10:55:08
3416
1
原创 图像平滑(边缘检测)
使用函数edge的边缘检测:常用的图像分割方法是边缘检测,这种方法是检测亮度的不连续性。这样的不连续是用一阶和二阶导数来检测的。首先,我们先介绍二阶函数的梯度向量公式:这个向量的幅值可以简化为如下形式:通常使用梯度的幅值或近似值来作为“梯度”。梯度向量的基本性质是:梯度向量指向(x,y)坐标处f的最大变化率方向。最大变化率处发生的角度是:在图像处理工具箱中,可以使用函数edge来作为边缘估计器。在本次实验中,使用 sobel 模板进行梯度的运算,Sobel 模板能
2021-07-31 10:47:23
1728
原创 形态学图像处理
1.二值形态学腐蚀:Z2中的集合A和B,A-B表示为B对A的腐蚀,即B对A的腐蚀是一个用z平移的B包含在A中的所有的点z的集合。假定集合B是一个结构元,则腐蚀表达式等价于下面的表达式,其中,Ac是A的补集,Φ是空集。2.二值形态学膨胀:A和B是Z2中的集合, A+B表示为B对A的膨胀。表达式是以B关于它的原点的映像,并且以z对映像进行平移为基础。B对A的膨胀是所有位移z的集合,假定B是一个结构元,A是被膨胀的集合。代码如下:clc ...
2021-07-30 16:48:42
381
原创 图像压缩编码——块变换编码
块变换编码,是指将图像分成若干个块,对每一块经过数学转换后映射至另一值域后再进行编码处理,是属于变换编码的一种。因为经常与量化一起使用,属于有损数据压缩。其中包括以下几种形式:DFT变换、DCT变换、Walsh-Hadamard Transform、KL Transform。图像变换编码是指将以空间域中像素形式描述的图像转换至变换域,以变换系数的形式加以表示。大部分图像是平坦区域和内容变换缓慢的区域,即大部分是直流和低频,高频比较少...
2021-07-22 14:00:01
2444
原创 图像熵(matlab)
图像熵的计算公式:其中P(ai)为某一事件发生的概率,式中对数一般取2为底,单位为比特。概率为P(E)的随机事件E包含了下面这样的信息单位:如果P(E)=1(也就是说,这个事件总会发生),那么I(E)=0,也就是没有信息。换句话说,因为没有与这个事件关联的不确定因素,所以也就没有事件已发生需要传递的信息。在离散的可能事件的几何{a1,a2,…,aJ}中给定随机始建于,与之相关的概率为{P(a1),P(a2),…,P(aJ)},每个输出信源的平均信息被称为信源的熵:如果一幅
2021-07-22 13:48:10
9753
1
原创 图像压缩——客观保真度准则
当信息损失可以表示为压缩处理的输入和输出的数学函数时,则称其是以客观保真度准则为基础的。一个例子是两幅图像间的均方根误差。令输入图像是f(x,y),并令是f(x,y)的近似,它是对输入先压缩后解压缩的结果。对任意x和y的值,f(x,y)和之间的误差e(x,y)为因此,两幅图像间的总误差为其中,图像的大小为M×N。而f(x,y)和之间的均方根误差是在M×N阵列上平均误差的平方的平方根,可写为 尽管客观保真度准则提供了评估信息损...
2021-07-22 13:41:07
1541
原创 Java——2的幂和4的幂
1.2的幂给定一个整数 n,请你判断该整数是否是 2 的幂次方。如果是,返回 true ;否则,返回 false 。如果存在一个整数 x 使得n == ,则认为 n 是 2 的幂次方。解答:判断一个整数n是否是 2 的幂次方,则该整数n必须满足两个条件:①.该整数n大于0。②.n&n-1等于0。这是由于n为2的幂次方,故其二进制数只有一个1,并且处于最高位;n-1的二进制数只有一个0,其余全为1,并且0处于最高位。因此将n与n-1相与可以把n的最低位的1消除,又由于n的二进.
2021-07-20 12:01:51
489
原创 模糊滤波和维纳滤波
1、模糊滤波这是由运动引起的图像模糊。假设问题中的图像在x和y方向以给定速度x0(t)=at/T做匀速直线运动,其退化函数为:2、维纳滤波维纳滤波综合了退化函数和噪声统计特性两个方面进行复原处理,该方法是建立在认为图像和噪声是随机过程的基础上,目标是找一个未污染图像的估计值,使它们之间的均方误差最小。误差度量由下式给出:其中E是参数的期望值。这里假设噪声和图像不相关,其中一个或另一个有零均值,且估计的灰度级是退化图像灰度级的线性函数。在这些条件下,误差函数的最小值在频域.
2021-07-19 20:44:15
552
原创 陷波滤波器——周期性降噪
1、正弦噪声(周期噪声)图像中的周期噪声是在图像获取期间由电力或机电干扰产生的,同时周期噪声可通过频率域滤波来显著地减少。陷波滤波器是处理此类噪声的有效工具。一个纯正弦波的傅里叶变换是位于正弦波共轭频率处的一对共轭脉冲。2、陷波滤波陷波滤波器阻止(或通过)事先定义的中心频率的领域内的频率。陷波滤波器用于去除周期噪声,陷波滤波器主要对,某个点进行衰减,对其余的成分不损失。下面是一个n阶布特沃斯陷波带阻滤波器:由于傅里叶的周期性,傅里叶频谱上不可能单独存在一个点的噪声,.
2021-07-19 20:37:46
8476
3
原创 使用中值滤波器对图像降噪
中值滤波器:基于排序统计理论的一种能有效抑制噪声的非线性平滑滤波信号处理技术。中值滤波的特点即是首先确定一个以某个像素为中心点的邻域,一般为方形邻域,也可以为圆形、十字形等等,然后将邻域中各像素的灰度值排序,取其中间值作为中心像素灰度的新值,这里领域被称为窗口,当窗口移动时,利用中值滤波可以对图像进行平滑处理。其算法简单,时间复杂度低,但其对点、线和尖顶多的图像不宜采用中值滤波。很容易自适应化。中值滤波对椒盐噪声抑制很好,对高斯噪声抑制一般。二维中值滤波可由下式表示:程序代码如下:...
2021-07-19 18:36:04
4109
原创 图像加噪(高斯噪声和椒盐噪声)
1.高斯噪声在空间域和频率域中,由于高斯噪声在数学上的易处理性,故实践中常用这种噪声模型。高斯随机变量z的PDF由下式给出:高斯噪声是指概率密度函数服从高斯分布(即正态分布)的一类噪声。常见的高斯噪声包括起伏噪声、宇宙噪声、热噪声和散粒噪声等等。高斯随机变量z的PDF由上式给出,其中z表示灰度值,u表示z的均值,σ表示z的方差。当z服从高斯分布时,其值有大约70%落在范围[(u-σ),(u+σ)]内,有大约95%落在范围[(u-2σ),(u+2σ)]内。其概率密度函数如图:
2021-07-19 18:27:51
5632
原创 高斯低通和高斯高通滤波器
1.高斯低通滤波器(GLPF)高斯低通滤波器的二维形式为:其中,D0是截止频率,D(u,v)是距频率矩形中心的距离。高斯滤波器的宽度由参数 D0 表征,决定了平滑程度,而且 D0越大,高斯滤波器的频带就越宽,平滑程度就越好。因为噪声主要集中在高频段,所以通过高斯低通滤波器可以滤除噪声信息、平滑图像,但与此同时会滤除图像的细节信息,使图像变得模糊。2.高斯高通滤波器(GHPF)截止频率处在距频率矩形中心距离为 D0的高斯高通滤波器的传递函数为:高通滤波与低通滤波正好相反,是
2021-07-18 18:12:04
26477
3
原创 图像的傅里叶频谱和平均值
1.计算平均值第一种方法:先计算列向量均值,再求总均值。第二种方法:用函数mean2求总均值第三种方法:按公式计算,像素值总和除以像素个数。第四种方法:也是按公式计算,但是用sum来求像素值总和。2.傅里叶频谱频率域滤波指由修改一幅图像的傅里叶变换,然后计算其反变换,得到处理后的结果组成。给定一幅大小为 M×N 的数字图像f(x,y),其基本率滤波公式为:其中,F(u,v)是输入图像的DFT,H(u,v)是滤波函数即滤波器,g(x,y)是滤波后的输出图像。函数F、H和g是
2021-07-18 17:54:44
3610
原创 图像的二维快速傅里叶变换
1.理想低通滤波器(ILPF)其中,D0表示通带的半径。D(u,v)的计算方式也就是两点间的距离。给定一个频率阈值,将高于该阈值的所有部分设置为0,而低于该频率的部分保持不变。2.频率域滤波步骤总结为如下:(1)给定一幅大小为M×N的输入图像f(x,y),从式子得到填充参数为 P=2M 和 Q=2M。(2)对f(x,y)添加必要数量的0,形成大小为P×Q的填充后的图像fp(x,y)。(3)用因子 (-1)^x+y 乘以fp(x,y),移到其变换的中心。(4)计算傅里叶
2021-07-18 17:43:41
2581
原创 非锐化掩蔽和高提升滤波
如下图为原图像、高斯滤波器模糊图像、非锐化模板、使用非锐化掩蔽的结果、使用高提升滤波的结果图。由图可以看出,使用高斯滤波器后图像变得模糊,使用非锐化模板后所得的图像较原图像有了进一步改进,最后通过高提升滤波,使得图像效果大大增强。非锐化掩蔽的处理过程可以分为三步:1.模糊原图像。2.从原图像中减去模糊图像(产生的差值图像称为模板)。3.将模板加到原图像上。程序代码如下:clc %清除命令窗口的内容close all %关闭所有的Figure窗口clear a
2021-07-18 17:28:11
1444
原创 图像增强(拉普拉斯锐化增强)
图1为原图像,图2为拉普拉斯模板滤波器模板和带有对角项的公式的扩展模板进行处理以及锐化后的图像,图3为实践常用拉普拉斯模板1和模板2进行图像处理以及锐化后的图像。对图像经过拉普拉斯滤波后,可以得到图像的边缘,再用原图减去模糊图像得出模板后再加到原图上去,可以得到锐化增强的效果。可以看出用第二个模板的锐化效果更好,这是因为第二个模板处于中心位置的像素所乘的值的绝对值更大。锐化后的图像的细节部分会得到增强,同时也会很好的保留图像的背景色调。由图2可以看出,图像经过拉普拉斯滤波器模板后,图像的清晰度明显提
2021-07-18 17:19:59
6664
2
原创 LeeCode——最大子序和(动态规划算法)
题目描述给定一个整数数组nums,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。动态规划算法若前面一个元素大于0,则将其加到当前元素上。具体实现过程:1.将数组第1位nums[0]作为前一个元素prenum的初始值,同时作为最大值max的初始值,然后遍历数组从nums[1]到nums[nums.length-1]。2.遍历过程中,若当前值nums[i]的前一个元素prenum的值大于或等于0,则将其与当前元素值相加,并作为新的一个prenum值;若当..
2021-07-13 16:40:26
225
原创 空间滤波(平滑滤波)
本实验所采用的空间滤波方法是平滑滤波,下图是两个3*3平滑(均值)滤波器模板,对图像进行平滑处理。平滑线性空间滤波器的输出响应是包含在滤波器模板邻域内的像素的简单平均值。平滑滤波器多用于模糊处理和降低噪声。第一个滤波器产生模板下方的标准像素平均值。其中第二个模板更为重要,它产生加权平均,是指使用不同的系数乘以像素,即一些像素的重要性(权重)比另一些像素的重要性大。因此,一幅M×N的图像经过一个大小为m×n(m和n是奇数)的加权均值滤波器滤波的过程可由下式给出:即一幅完全.
2021-07-10 21:13:29
7259
1
原创 直方图均衡化
1.灰度直方图统计各个灰度级在图像中出现的概率,然后用条形图表示出来。图像直方图描述了一幅图像的绘图统计信息,主要应用于图像分割和图像灰度变换等处理过程。同时根据直方图的形态可以大致推断出图像质量的好坏。在[0,G]范围内总共有L级可能灰度的一幅数字图像可以用下列离散函数表示: h(rk) = nk其中,rk是[0,G]间隔内的第k级灰度,nk为图像中出现rk灰度级的像素数量。对于uint8类,G的值为255;对于uint16类,G的值为65535;对于浮点图像类,G的...
2021-07-10 21:02:28
253
原创 JAVA中throw和throws的异同
throw表示抛出一个异常类的对象,生成异常对象的过程。声明在方法体内——》自动抛出异常对象。throws属于异常处理的一种方式。声明在方法声明处的末尾——》try-catch-finally举例:class Student{ private int id; public void regist(int id) throws Exception { if(id > 0){ this.id = id; }else{ //手动抛出异常对象
2021-07-09 11:43:58
118
原创 JAVA中重载和重写的区别
重载定义:在同一个类中,可以存在两个或以上的同名方法,只要它们的参数个数或者参数类型不同即可。即“两同一不同”:1.两同:同一个类,同个方法名。 2. 一不同:参数(列表、个数或类型)不同。JAVA中例子:Arrays类中重载的sort()、binarySearch()方法。重写定义:子类继承父类以后,可以对父类中同名同参数的方法进行覆盖操作。重写以后,当创建子类对象以后,通过子类对象调用子父类中同名同参数的方法时,实际执...
2021-07-08 23:29:21
66
原创 灰度变换与空间滤波——图像增强
使用强度变换来进行图像增强1.使用对数变换对数变换的通用形式:s=c*log(1+r) 其中c是常数,r是浮点数,取输入图像的像素值,s为通过对数变换处理后的像素值。使用对数变换来扩展图像中的暗像素值,同时压缩更高灰度级的值,通过将输入中范围较窄的低灰度值映射为输出中较宽范围的灰度值,或将输入中范围较宽的高灰度值映射为输出中范围较窄的灰度值来实现。对数变换的一个重要特征是它压缩像素值变化较大的图像的动态范围。对数变换方法的一个局限性是:图像的显示系统通常不能如实地再现大范围地...
2021-07-08 18:58:20
367
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人