数字图像处理:实验六
uu们!大家好,2025年的新年就要到来,咸鱼哥在这里祝大家在2025年每天开心快乐,天天挣大钱,自由自在,健健康康,万事如意!(要是咸鱼哥嘴笨的话,还望大家多多包涵!因为咸鱼哥不太机灵。。。没办法(单纯就是不太会表达自己的意思,所以过年不太讨喜emmm...))在本章,咸鱼哥主要是针对于锐化空间滤波的概念和方法来进行实验的操作和代码的讲解,uu们!我们开始本章实验吧!
一、基础知识
1.拉普拉斯变换(算子):
在数字图像处理中:
(实际上这个算式很好理解,在3*3的蒙板中,我们的中心为(x,y),而算式中的前四个就是和(x,y)四邻接的四个方块的值,实际上就是十字上的处中心的值相加,然后再减去中心(x,y)的4倍值就可以计算出来了。)
注:这个蒙板只是一个例子,并不是规定中心一定为负数,还有以下的形式,包括中心点为正,还有和不为零等情况。
增强方法:
2、sobel变换(算子):
二、具体要求
1、依据拉普拉斯算子,选用模板1~8对自选图(不能选图例1)进行锐化处理;依据Sobel算子选用模板9~10对自选图(不能选图例2)进行边缘检测。
2、应用拉普拉斯算子时,每种模板的对应输出图包 含“原图”、“依据模板X(X代表模板数)滤波后”、“拉普拉斯锐化后”3个子图,因此对于拉普拉斯锐化有8 个输出图,一共24个子图,每个子图都要有上述对 应的3个子图名。 应用Soble算子时,为1张输出图,包含3个子图:“原图”、“行检测”、“列检测”。
三、应用编程
输入透射CT(全身或局部)图像,设计一个算法流程, 进行层次化的图像增强,得到增强效果更好的结果图像。
要求如下:
1. 使用高斯滤波进行预处理,减少noise;
2. 使用拉普拉斯滤波进行细节增强;
3. 使用Sobel 边缘检测增强边缘;
4. 对比度受限的低对比度区域使用自适应直方图 均衡化提升对比度;
5. 用中值滤波去除噪声点;
6. 分析比较不同阶段的图像效果;
7. 将上述所有滤波方法进行优化组合获得增强图。
四、编程
img = imread('1.png'); % 替换为你的图像路径 % 从指定路径读取图像文件
img_gray = rgb2gray(img); % 转换为灰度图像 % 将读取的彩色图像转换为灰度图像A=-8; % 定义一个变量A,用于后续模板中的计算% 拉普拉斯模板(示例,你可以根据需要定义其他模板)
laplacian_templates = { % 定义一个cell数组,存储不同的拉普拉斯模板[0 1 0; 1 -4 1; 0 1 0], % 模板1[1 1 1; 1 -8 1; 1 1 1], % 模板2[0 -1 0; -1 4 -1; 0 -1 0], % 模板3[-1 -1 -1; -1 8 -1; -1 -1 -1], % 模板4% 增强模板5(负中心,增强边缘检测效果)[0 1 0; 1 (A-4) 1; 0 1 0], % 模板5,中心系数为A-4% 增强模板6(负中心,同样增强边缘检测效果)[1 1 1; 1 (A-8) 1; 1 1 1], % 模板6,中心系数为A-8% 增强模板7(正中心,用于强调中心像素)[0 -1 0; -1 (A+4) -1; 0 -1 0], % 模板7,中心系数为A+4% 增强模板8(正中心,增强中心像素的影响)[-1 -1 -1; -1 (A+8) -1; -1 -1 -1] % 模板8,中心系数为A+8
};% 拉普拉斯算子处理并显示结果,每个模板一个窗口
for i = 1:length(laplacian_templates)figure; % 创建新窗口 % 为每个模板的处理结果创建一个新的显示窗口% 原图subplot(1, 3, 1); % 在1行3列的子图中占据第1个位置imshow(img_gray); % 显示灰度图像title(['原图 - 模板' num2str(i)]); % 设置标题,显示当前处理的模板编号% 依据模板滤波后filtered_img = imfilter(double(img_gray), laplacian_templates{i}, 'same', 'replicate'); % 使用拉普拉斯模板进行滤波subplot(1, 3, 2); % 在1行3列的子图中占据第2个位置imshow(filtered_img, []); % 显示滤波后的图像,使用空矩阵[]自动调整显示范围title(['依据模板' num2str(i) '滤波后']); % 设置标题% 拉普拉斯锐化后sharpened_img = double(img_gray) - filtered_img; % 通过原图减去滤波后的图像进行锐化sharpened_img = uint8(sharpened_img); % 将结果转换为uint8类型subplot(1, 3, 3); % 在1行3列的子图中占据第3个位置imshow(sharpened_img); % 显示锐化后的图像title(['拉普拉斯锐化后 - 模板' num2str(i)]); % 设置标题
end
结果:
应用代码:
% Sobel算子
sobel_x = [-1 0 1; -2 0 2; -1 0 1]; % Sobel算子的x方向模板
sobel_y = [-1 -2 -1; 0 0 0; 1 2 1]; % Sobel算子的y方向模板% 行检测(注释说明了不推荐手动执行卷积操作的原因)
edge_x = imfilter(double(img_gray), sobel_x, 'same', 'replicate'); % 使用Sobel x方向模板进行滤波
edge_x = uint8(255 * mat2gray(edge_x)); % 将滤波结果归一化到0-255范围并转换为uint8类型% 列检测(同理,使用Sobel y方向模板进行滤波)
edge_y = imfilter(double(img_gray), sobel_y, 'same', 'replicate'); % 使用Sobel y方向模板进行滤波
edge_y = uint8(255 * mat2gray(edge_y)); % 将滤波结果归一化到0-255范围并转换为uint8类型% 显示结果
figure; % 创建一个新的显示窗口
% 原图
subplot(1, 3, 1); % 在1行3列的子图中占据第1个位置
imshow(img_gray); % 显示灰度图像
title('原图'); % 设置标题% 行检测
subplot(1, 3, 2); % 在1行3列的子图中占据第2个位置
imshow(edge_x); % 显示行检测的结果
title('行检测'); % 设置标题% 列检测
subplot(1, 3, 3); % 在1行3列的子图中占据第3个位置
imshow(edge_y); % 显示列检测的结果
title('列检测'); % 设置标题
结果:
代码:
% 读取CT图像
ct_img = imread('1.png'); % 替换为你的CT图像路径
ct_img_gray = rgb2gray(ct_img); % 转换为灰度图像% 1. 使用高斯滤波进行预处理,减少噪声
filtered_img = imgaussfilt(ct_img_gray, 2); % 对灰度图像进行高斯滤波% 2. 使用拉普拉斯滤波进行细节增强
laplacian_kernel = [0 -1 0; -1 4 -1; 0 -1 0]; % 拉普拉斯算子
detail_enhanced = imfilter(double(filtered_img), laplacian_kernel, 'same', 'replicate'); % 对滤波后的图像进行拉普拉斯滤波
detail_enhanced = double(filtered_img) - detail_enhanced; % 使用原图减去拉普拉斯滤波结果进行细节增强
detail_enhanced = uint8(detail_enhanced); % 转换为uint8类型% 定义Sobel算子
sobel_x = [-1 0 1; -2 0 2; -1 0 1]; % Sobel算子的x方向分量
sobel_y = [-1 -2 -1; 0 0 0; 1 2 1]; % Sobel算子的y方向分量% 3. 使用Sobel 边缘检测增强边缘
edge_x = imfilter(double(detail_enhanced), sobel_x, 'same', 'replicate'); % 对细节增强后的图像进行x方向Sobel滤波
edge_y = imfilter(double(detail_enhanced), sobel_y, 'same', 'replicate'); % 对细节增强后的图像进行y方向Sobel滤波
edge_magnitude = sqrt(edge_x.^2 + edge_y.^2); % 计算边缘强度
edge_magnitude = uint8(255 * (edge_magnitude - min(edge_magnitude(:))) / (max(edge_magnitude(:)) - min(edge_magnitude(:)))); % 归一化到0-255范围% 4. 对比度受限的低对比度区域使用自适应直方图均衡化提升对比度
adapthisteq_img = adapthisteq(detail_enhanced); % 对细节增强后的图像进行自适应直方图均衡化% 5. 用中值滤波去除噪声点
final_img = medfilt2(adapthisteq_img, [3 3]); % 对自适应直方图均衡化后的图像进行中值滤波% 6. 分析比较不同阶段的图像效果
figure;
subplot(2, 3, 1);
imshow(ct_img_gray);
title('原图');subplot(2, 3, 2);
imshow(filtered_img);
title('高斯滤波后');subplot(2, 3, 3);
imshow(detail_enhanced);
title('拉普拉斯细节增强后');subplot(2, 3, 4);
imshow(edge_magnitude);
title('Sobel边缘检测后');subplot(2, 3, 5);
imshow(adapthisteq_img);
title('自适应直方图均衡化后');subplot(2, 3, 6);
imshow(final_img);
title('最终增强图');
% 7. 将上述所有滤波方法进行优化组合获得增强图(已在上一步完成)
结果:
五、结语
uu们!本章实验的实验结果到此就结束了,临近春节,给自己放个假才让我们更好的去面对崭新的2025,uu们,下一章我们见!
相关文章:
数字图像处理:实验六
uu们!大家好,2025年的新年就要到来,咸鱼哥在这里祝大家在2025年每天开心快乐,天天挣大钱,自由自在,健健康康,万事如意!(要是咸鱼哥嘴笨的话,还望大家多多包涵…...
【2025年数学建模美赛C题】第1-5问F奖解题思路+高级绘图+可运行代码
基于多模型分析的奥运会奖牌预测与影响因素研究 解题思路一、问题重述二、问题分析三、模型假设与符号说明四、数据预处理五、奖牌榜预测5.1 基于LSTM长短期记忆循环神经网络的预测模型的建立5.2 模型预测结果 六、首枚奖牌预测6.1 BP神经网络的建立6.2 模型预测结果 七、各国奖…...
记一次STM32编译生成BIN文件过大的问题(基于STM32CubeIDE)
文章目录 问题描述解决方法更多拓展 问题描述 最近在一个项目中使用了 STM32H743 单片机(基于 STM32CubeIDE GCC 开发),它的内存分为了 DTCMRAM RAM_D1 RAM_D2 …等很多部分。其中 DTCM 的速度是比通常的内存要快的,缺点是不支持…...
【设计模式-行为型】备忘录模式
一、什么是备忘录模式 来到备忘录模式了,这个模式我感觉相对简单一些,就是备份,或者快照。跟前面一样为了加深理解,我们引入一个电影情结来说明啥是备忘录模式,以来加深大家对备忘录模式的认识。那么,在电影…...
使用Cline+deepseek实现VsCode自动化编程
不知道大家有没有听说过cursor这个工具,类似于AIVsCode的结合体,只要绑定chatgpt、claude等大模型API,就可以实现对话式自助编程,简单闲聊几句便可开发一个软件应用。 但cursor受限于外网,国内用户玩不了,…...
React 前端框架实战教程
📝个人主页🌹:一ge科研小菜鸡-CSDN博客 🌹🌹期待您的关注 🌹🌹 引言 React 是由 Facebook 开发的前端 JavaScript 库,旨在构建高效、灵活的用户界面,尤其适用于单页应用…...
输入带空格的字符串,求单词个数
输入带空格的字符串,求单词个数 __ueooe_eui_sjje__ ---->3syue__jdjd____die_ ---->3shuue__dju__kk ---->3 #include <stdio.h> #include <string.h>// 自定义函数来判断字符是否为空白字符 int isSpace(char c) {return c || c \t || …...
Kafka 日志存储 — 日志清理
Kafka 提供两种日志清理策略:日志清理(Log Delete)与日志压缩(Log Compaction)。 1 日志清理 通过broker端参数log.cleanup.policy来设置日志清理策略,默认值为“delete”。如果要采用日志压缩的清理策略,则设置为“compact”。可以同时支持…...
51单片机入门_02_C语言基础0102
C语言基础部分可以参考我之前写的专栏C语言基础入门48篇 以及《从入门到就业C全栈班》中的C语言部分,本篇将会结合51单片机讲差异部分。 课程主要按照以下目录进行介绍。 文章目录 1. 进制转换2. C语言简介3. C语言中基本数据类型4. 标识符与关键字5. 变量与常量6.…...
从零开始学 HTML:构建网页的基本框架与技巧
系列文章目录 01-从零开始学 HTML:构建网页的基本框架与技巧 文章目录 系列文章目录前言一、HTML 文档的基本框架1.1 <!DOCTYPE html>、<html>、<head>、<body> 标签解析1.1.1 <!DOCTYPE html> 标签1.1.2 <html> 标签1.1.3 &l…...
vim的特殊模式-可视化模式
可视化模式:按 v进入可视化模式 选中 y复制 d剪切/删除 可视化块模式: ctrlv 选中 y复制 d剪切/删除 示例: (vim可视化模式的进阶使用:vim可视化模式的进阶操作-CSDN博客)...
LeetCode - Google 大模型校招10题 第1天 Attention 汇总 (3题)
欢迎关注我的CSDN:https://spike.blog.csdn.net/ 本文地址:https://spike.blog.csdn.net/article/details/145368666 GroupQueryAttention(分组查询注意力机制) 和 KVCache(键值缓存) 是大语言模型中的常见架构,GroupQueryAttention 是注意力…...
【ES实战】治理项之索引模板相关治理
索引模板治理 文章目录 索引模板治理问题现象分析思路操作步骤问题程序化方案索引与索引模板增加分片数校验管理 彩蛋如何查询Flink on Yarn 模式下的Task Manager日志相关配置查询已停止的Flink任务查询未停止的Flink任务 问题现象 在集群索引新建时,索引的分片比…...
Ansible自动化运维实战--script、unarchive和shell模块(6/8)
文章目录 一、script模块1.1、功能1.2、常用参数1.3、举例 二、unarchive模块2.1、功能2.2、常用参数2.3、举例 三、shell模块3.1、功能3.2、常用参数3.3、举例 一、script模块 1.1、功能 Ansible 的 script 模块允许你在远程主机上运行本地的脚本文件,其提供了一…...
完全平方数——唯一分解定理
文章目录 一、唯一分解定理是什么?1.定义2.示例3.代码模板 二、例题1>问题描述(2021蓝桥杯省赛)输入格式输出格式样例输入 1样例输出 1样例输入 2样例输出 2评测用例规模与约定 2>解题思路3>假娃3>C嘎嘎 一、唯一分解定理是什么&…...
可见光通信代码仿真
可见光通信代码仿真。可以在matlab上进行matlab仿真。 资源文件列表 visible_light/catch.m , 119 visible_light/HLOS.m , 283 visible_light/PRXLOS.m , 129 visible_light/RO.m , 155 visible_light/untitled.fig , 134740 visible_light/visible_light_comms.m , 1620 vis…...
Sklearn 中的逻辑回归
逻辑回归的数学模型 基本模型 逻辑回归主要用于处理二分类问题。二分类问题对于模型的输出包含 0 和 1,是一个不连续的值。分类问题的结果一般不能由线性函数求出。这里就需要一个特别的函数来求解,这里引入一个新的函数 Sigmoid 函数,也成…...
spark运行流程
spark运行流程 任务提交后,先启动 Driver 程序随后 Driver 向集群管理器注册应用程序集群管理器根据此任务的配置文件分配 Executor 并启动Driver 开始执行 main 函数,Spark 查询为懒执行,当执行到 Action 算子时开始反向推 算,根…...
MapReduce,Yarn,Spark理解与执行流程
MapReduce的API理解 Mapper 如果是单词计数:hello:1, hello:1, world:1 public void map(Object key, // 首字符偏移量Text value, // 文件的一行内容Context context) // Mapper端的上下文,…...
elk 安装
创建elk网络 docker network create -d bridge elkelasticsearch 创建目录 mkdir -p /data/elasticsearch/{conf,logs,data,plugins}vim /data/elasticsearch/conf/elasticsearch.ymlcluster.name: "es-cluster" network.host: 0.0.0.0 xpack.security.enabled: tr…...
二十三种设计模式-桥接模式
桥接模式(Bridge Pattern)是一种结构型设计模式,其核心思想是将抽象与实现解耦,让它们可以独立变化。桥接模式主要用于解决类的继承问题,避免由于继承而带来的类层次结构过于复杂和难以维护的问题。 1. 核心概念 桥接…...
【Validator】字段验证器struct与多层级验证,go案例
标签用法总结表 标签功能代码实例required字段必填Name string \v:“required”alphaunicode验证字段是否只包含字母和 Unicode 字符Name string \v:“alphaunicode”gte验证字段值是否大于等于指定值Age uint8 \v:“gte10”lte验证字段值是否小于等于指定值Age uint8 \v:“lt…...
第19篇:python高级编程进阶:使用Flask进行Web开发
第19篇:python高级编程进阶:使用Flask进行Web开发 内容简介 在第18篇文章中,我们介绍了Web开发的基础知识,并使用Flask框架构建了一个简单的Web应用。本篇文章将深入探讨Flask的高级功能,涵盖模板引擎(Ji…...
jEasyUI 创建复杂布局
jEasyUI 创建复杂布局 引言 jEasyUI 是一款基于 jQuery 的开源 UI 框架,它提供了一套丰富的 UI 组件,帮助开发者快速构建美观、易用的 Web 应用。在开发过程中,复杂布局的创建往往是一个挑战。本文将详细介绍如何使用 jEasyUI 创建复杂布局,帮助开发者提升工作效率。 前…...
前端【8】HTML+CSS+javascript实战项目----实现一个简单的待办事项列表 (To-Do List)
目录 一、功能需求 二、 HTML 三、CSS 四、js 1、绑定事件与初始设置 2.、绑定事项 (1)添加操作: (2)完成操作 (3)删除操作 (4)修改操作 3、完整js代码 总结…...
java爬虫工具Jsoup学习
目录 前言 一、基本使用 二、爬取豆瓣电影的案例 三、Jsoup能做什么? 四、Jsoup相关概念 五、Jsoup获取文档 六、定位选择元素 七、获取数据 八、具体案例 前言 JSoup是一个用于处理HTML的Java库,它提供了一个非常方便类似于使用DOM࿰…...
RabbitMQ模块新增消息转换器
文章目录 1.目录结构2.代码1.pom.xml 排除logging2.RabbitMQConfig.java3.RabbitMQAutoConfiguration.java 1.目录结构 2.代码 1.pom.xml 排除logging <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/PO…...
大话特征工程:1.维数灾难与特征轮回
一、维度深渊 公元 2147 年,人类文明进入了数据驱动的超级智能时代。从金融到医疗,从教育到娱乐,所有决策都仰赖“全维计算网络”(高维特征空间)。这套系统将全球所有信息抽象成数以亿计的多维特征(…...
学院失物招领 app 的设计与实现
标题:学院失物招领 app 的设计与实现 内容:1.摘要 随着移动互联网的普及和智能手机的广泛应用,越来越多的人开始使用手机应用程序来解决生活中的各种问题。在大学校园中,失物招领是一个常见的问题,每年都有大量的学生丢失或捡到物品。为了解…...
std::function的简易实现
本节我们来实现一个简易的std::function 我们知道std::function是用来包装可调用对象的,在C中,可调用对象包括 普通函数、lambda表达式、重载了()操作符的类对象、类静态函数、类成员函数这几类。 C程序的编译顺序:预处理(xxx.i) 编译(xxx.…...
笔试-二维数组1
应用 快递业务有N个站点,1<N<10000;站点0、站点1可达,记作0-1;如果0-1、1-2,则站点0、站点2可达,记作0-2;s[i][j]1表示i-j可达,反之s[i][j]0表示i-j不可达;s[i][j…...
【Pytest】生成html报告中,中文乱码问题解决方案
import pytestif __name__ "__main__":# 只运行 tests 目录下的测试用例,并生成 HTML 报告pytest.main([-v, -s, --htmlreport.html, tests])可以以上方式生成,也可以在pytest.ini中设置 [pytest] addopts --htmlreport.html --self-contai…...
汽车网络信息安全-ISO/SAE 21434解析(下)
目录 第十二~十四章 - 后开发阶段 1. 十二章节 - 生产 2. 十三章节 - 运营与维护 网络安全事件响应 更新 3. 十四章节 - 结束网络安全支持和停用 结束网络安全支持 报废 第十五章 - TARA分析方法 1. 概述 2. 资产识别 3. 威胁场景识别 4. 影响评级 5. 攻击路径分…...
局域网中 Windows 与 Mac 互相远程连接的最佳方案
由于工作需要,经常需要远程连接或登录到几台不同的工作用机上进行操作。 下面基于免费、高体验等基本诉求,简要记录几种不同场景下的实践方案选择,仅供参考。如您有更简单且更优的方案,欢迎一起探讨。 1 远程桌面连接的几种不同…...
Qt调用ffmpeg库录屏并进行UDP组播推流
基于以下参考链接,采用其界面和程序框架,实现实时推送UDP组播视频流,替换原拉流功能 https://blog.csdn.net/u012532263/article/details/102736700 源码在windows(qt-opensource-windows-x86-5.12.9.exe)、ubuntu20.…...
机器学习 - 初学者需要弄懂的一些线性代数的概念
一、单位矩阵 在数学中,单位矩阵是一个方阵,其主对角线上的元素全为1,其余元素全为0。单位矩阵在矩阵乘法中起到类似于数字1在数值乘法中的作用,即任何矩阵与单位矩阵相乘,结果仍为原矩阵本身。 单位矩阵的定义&…...
vscode无法格式化go代码的问题
CTRLshiftp 点击Go:Install/Update Tools 点击全选,OK!...
实验二 数据库的附加/分离、导入/导出与备份/还原
实验二 数据库的附加/分离、导入/导出与备份/还原 一、实验目的 1、理解备份的基本概念,掌握各种备份数据库的方法。 2、掌握如何从备份中还原数据库。 3、掌握数据库中各种数据的导入/导出。 4、掌握数据库的附加与分离,理解数据库的附加与分离的作用。…...
基于Django的个人博客系统的设计与实现
【Django】基于Django的个人博客系统的设计与实现(完整系统源码开发笔记详细部署教程)✅ 目录 一、项目简介二、项目界面展示三、项目视频展示 一、项目简介 系统采用Python作为主要开发语言,结合Django框架构建后端逻辑,并运用J…...
PostgreSQL TRUNCATE TABLE 操作详解
PostgreSQL TRUNCATE TABLE 操作详解 引言 在数据库管理中,经常需要对表进行操作以保持数据的有效性和一致性。TRUNCATE TABLE 是 PostgreSQL 中一种高效删除表内所有记录的方法。本文将详细探讨 PostgreSQL 中 TRUNCATE TABLE 的使用方法、性能优势以及注意事项。 什么是 …...
黑盒/白盒运维监控
运维监控分为黑盒和白盒 黑盒:不深入代码,在系统角度看TPS,延迟等指标 白盒:深入代码分析,通过日志捕捉,以及主动上报告警等来进行监控 黑盒监控: 1. 页面功能:域名是否可访问&…...
日志收集Day007
1.配置ES集群TLS认证: (1)elk101节点生成证书文件 cd /usr/share/elasticsearch ./bin/elasticsearch-certutil cert -out config/elastic-certificates.p12 -pass "" --days 3650 (2)elk101节点为证书文件修改属主和属组 chown elasticsearch:elasticsearch con…...
微信小程序1.1 微信小程序介绍
1.1 微信小程序介绍 内容提要 1.1 什么是微信小程序 1.2 微信小程序的功能 1.3 微信小程序使用场景 1.4 微信小程序能取代App吗 1.5 微信小程序的发展历程 1.6微信小程序带来的机会...
Leetcode 3434. Maximum Frequency After Subarray Operation
Leetcode 3434. Maximum Frequency After Subarray Operation 1. 解题思路2. 代码实现 题目链接:3434. Maximum Frequency After Subarray Operation 1. 解题思路 这一题的话我们只需要考察所有的数 i i i转换为 k k k时所能够形成的最大的值。 而对于这个问题&…...
6. 使用springboot做一个音乐播放器软件项目【1.0版项目完结】附带源码~
#万物OOP 注意: 本项目只实现播放音乐和后台管理系统。 不分享任何音乐歌曲资源。 上一篇文章我们 做了音乐播放器后台的功能。参考地址: https://jsonll.blog.csdn.net/article/details/145214363 这个项目已经好几天也没更新了,因为临近放…...
php twig模板引擎详细使用教程
php twig模板引擎 1. 什么是Twig模板引擎 Twig是一个强大且灵活的PHP模板引擎,它提供了一种更简洁和可扩展的方法来创建PHP应用程序的视图层。Twig模板引擎旨在将设计与业务逻辑分离,并为开发人员提供一种更加清晰和易于维护的方式来构建网页。Twig由S…...
【Java设计模式-7】责任链模式:我是流水线的一员
一、责任链(Chain of Responsibility Patten)模式是个啥? 想象一下,你要请假。你先把请假申请交给了小组长,小组长一看,这事儿他能决定,就直接批了。要是小组长觉得这事儿得往上汇报࿰…...
Spring Boot应用中实现基于JWT的登录拦截器,以保证未登录用户无法访问指定的页面
目录 一、配置拦截器进行登录校验 1. 在config层设置拦截器 2. 实现LoginInterceptor拦截器 3. 创建JWT工具类 4. 在登录时创建JWT并存入Cookie 二、配置JWT依赖和环境 1. 添加JWT依赖 2. 配置JWT环境 本篇博客将为大家介绍了如何在Spring Boot应用中实现基于JWT的登录…...
【2025年数学建模美赛F题】(顶刊论文绘图)模型代码+论文
全球网络犯罪与网络安全政策的多维度分析及效能评估 摘要1 Introduction1.1 Problem Background1.2Restatement of the Problem1.3 Literature Review1.4 Our Work 2 Assumptions and Justifications数据完整性与可靠性假设:法律政策独立性假设:人口统计…...
计算机网络之链路层
本文章目录结构出自于《王道计算机考研 计算机网络_哔哩哔哩_bilibili》 02 数据链路层 在网上看到其他人做了详细的笔记,就不再多余写了,直接参考着学习吧。 1 详解数据链路层-数据链路层的功能【王道计算机网络笔记】_wx63088f6683f8f的技术博客_51C…...