opencv二值化实验
二值化实验
- 1二值化说明
- 2 阈值法(THRESH_BINARY)
- 3.反阈值法(THRESH_BINARY_INV)
- 4截断阈值法(THRESH_TRUNC)
- 5 低阈值零处理(THRESH_TOZERO)
- 6 超阈值零处理(THRESH_TOZERO_INV)
- 7 OTSU阈值法
- 8 自适应二值化
- 8.1取均值(ADAPTIVE_THRESH_GAUSSIAN_MEAN_C)
- 8.2加权求和(ADAPTIVE_THRESH_GAUSSIAN_C)
1二值化说明
二值化,顾名思义,就是将某张图像的所有像素改成只有两种值之一,其操作的图像也必须是灰度图。也就是说,二值化的过程,就是将一张灰度图上的像素根据某种规则修改为0和maxval(maxval表示最大值,一般为255,显示白色)两种像素值,使图像呈现黑白的效果,能够帮助我们更好地分析图像中的形状、边缘和轮廓等特征。
在本实验中,使用了六种不同的方式来对灰度图进行二值化。
分别为:
- 1.阈值法(THRESH_BINARY)
- 2.反阈值法(THRESH_BINARY_INV)
-
- 截断阈值法(THRESH_TRUNC)
-
- 低阈值零处理(THRESH_TOZERO)
-
- 超阈值零处理(THRESH_TOZERO_INV)
-
- OTSU阈值法
2 阈值法(THRESH_BINARY)
阈值法就是通过设置一个阈值,将灰度图中的每一个像素值与该阈值进行比较,小于等于阈值的像素就被设置为0(黑),大于阈值的像素就被设置为maxval。
代码如下:
'''阈值法'''#二值化实验必须是在灰度图的基础上进行二值处理#直接读取灰度图img=cv2.imread(r'../15day4.10/src/flower.png',cv2.IMREAD_GRAYSCALE)#进行二值处理使用cv2.threshold()方法返回值为元组,第二个元素才是想要的二值图_,img_b=cv2.threshold(img,127,255,cv2.THRESH_BINARY)#小于127的像素点变为127,超过127的像素点变为255cv2.imshow("img",img)cv2.imshow("img_b",img_b)cv2.waitKey(0)
threshold参数说明:
- 参数1:是要做二值化处理的灰度图
- 参数2:设置的阈值,并且是小于这个值的像素点变为这个值
- 参数3 表示超过阈值的像素点的值变为参数3的这个值
- 参数4:表示要进行二值化处理的类型
注意:
- 二值化实验的进行处理的原图必须是灰度图
- threshold的返回值为两个值的元组,第二个值才是处理完后的二值图
- 二值图不是只有0和255的组合,只要是任意两个0-255的组合都可以
3.反阈值法(THRESH_BINARY_INV)
顾名思义,就是与阈值法相反。反阈值法是当灰度图的像素值大于阈值时,该像素值将会变成0(黑),当灰度图的像素值小于等于阈值时,该像素值将会变成maxval。
代码如下:
'''反阈值法'''img=cv2.imread(r'../15day4.10/src/flower.png',cv2.IMREAD_GRAYSCALE)#小于127的像素点变为255,超过127的像素点变为127_,img_b=cv2.threshold(img,127,255,cv2.THRESH_BINARY_INV)cv2.imshow("img",img)cv2.imshow("img_b",img_b)cv2.waitKey(0)
反阈值法就是跟阈值法相反,低于阈值的设置为另一个值,超过阈值的设置为阈值的 值
4截断阈值法(THRESH_TRUNC)
截断阈值法,指将灰度图中的所有像素与阈值进行比较,像素值大于阈值的部分将会被修改为阈值,小于等于阈值的部分不变。换句话说,经过截断阈值法处理过的二值化图中的最大像素值就是阈值。
代码如下:
'''截断阈值法'''img=cv2.imread(r'../15day4.10/src/flower.png',cv2.IMREAD_GRAYSCALE)#超过阈值的像素点设置为阈值,没有超过的不变,这里的255只是作为一个threshold的参数_,img_b=cv2.threshold(img,150,255,cv2.THRESH_TRUNC)cv2.imshow("img",img)cv2.imshow("img_b",img_b)cv2.waitKey(0)
注意:
- 截断阈值法(cv2.THRESH_TRUNC)和灰度图相似有多种颜色
- 超过阈值的像素点设置为阈值,没有超过的不变,这里的参数3只是作为一个threshold的参数,在这个方法中不起作用
5 低阈值零处理(THRESH_TOZERO)
低阈值零处理,字面意思,就是像素值小于等于阈值的部分被置为0(也就是黑色),大于阈值的部分不变。
代码如下:
'''低阈值零处理法'''img=cv2.imread(r'../15day4.10/src/flower.png',cv2.IMREAD_GRAYSCALE)#小于或等于阈值的像素点设置为0,超过的不变,这里的255只是作为一个threshold的参数_,img_b=cv2.threshold(img,127,255,cv2.THRESH_TOZERO)cv2.imshow("img",img)cv2.imshow("img_b",img_b)cv2.waitKey(0)
注意:
-低阈值零处理(cv2.THRESH_TOZERO) 小于或等于阈值的像素点设置为0,超过的不变,这里的参数3只是作为一个threshold的参数,在这个方法中不起作用
6 超阈值零处理(THRESH_TOZERO_INV)
超阈值零处理就是将灰度图中的每个像素与阈值进行比较,像素值大于阈值的部分置为0(也就是黑色),像素值小于等于阈值的部分不变。
和低阈值零处理(cv2.THRESH_TOZERO)方法相反
代码如下:
'''超阈值零处理'''img=cv2.imread(r'../15day4.10/src/flower.png',cv2.IMREAD_GRAYSCALE)#大于或等于阈值的像素点设置为0,没超过的不变,这里的255只是作为一个threshold的参数_,img_b=cv2.threshold(img,127,255,cv2.THRESH_TOZERO_INV)cv2.imshow("img",img)cv2.imshow("img_b",img_b)cv2.waitKey(0)
以上介绍的二值化方法都需要手动设置阈值,但是在不同的环境下,摄像头拍摄的图像可能存在差异,导致手动设置的阈值并不适用于所有图像,这可能会导致二值化效果不理想。因此,我们需要一种能自动计算每张图片阈值的二值化方法,能够根据每张图像的特点 自动计算出适合该图像的二值化阈值,从而达到更好的二值化效果。这种二值化方法可以在不同环境下适用,提高图像处理的准确性和鲁棒性。
7 OTSU阈值法
OTSU算法的具体实现
通过OTSU算法得到阈值之后,就可以结合上面的方法根据该阈值进行二值化,在本实验中**有THRESH_OTSU和THRESH_INV_OTSU两种方法,**就是在计算出阈值后结合了阈值法和反阈值法。
注意:使用OTSU算法计算阈值时,组件中的thresh参数将不再有任何作用。
代码如下:
'''OSTU阈值处理'''img=cv2.imread(r'../15day4.10/src/flower.png',cv2.IMREAD_GRAYSCALE)#127不使用,超过阈值的设置为255 _,img_b=cv2.threshold(img,127,255,cv2.THRESH_OTSU)cv2.imshow("img",img)cv2.imshow("img_b",img_b)cv2.waitKey(0)
8 自适应二值化
与二值化算法相比,自适应二值化更加适合用在明暗分布不均的图片,因为图片的明暗不均,导致图片上的每一小部分都要使用不同的阈值进行二值化处理,这时候传统的二值化算法就无法满足我们的需求了,于是就出现了自适应二值化。
自适应二值化方法会对图像中的所有像素点计算其各自的阈值,这样能够更好的保留图片里的一些信息。自适应二值化组件内容如下图所示:
方法的格式如下:
cv2.adaptiveThreshold(image_np_gray, 255, cv2.ADAPTIVE_THRESH_MEAN_C, cv2.THRESH_BINARY, 7, 10)
其中各个参数的含义如下:
maxval:最大阈值,一般为255
adaptiveMethod:小区域阈值的计算方式:
ADAPTIVE_THRESH_MEAN_C:小区域内取均值
ADAPTIVE_THRESH_GAUSSIAN_C:小区域内加权求和,权重是个高斯核
thresholdType:二值化方法,只能使用THRESH_BINARY、THRESH_BINARY_INV,也就是阈值法和反阈值法
blockSize:选取的小区域的面积,如7就是7*7的小块。
c:最终阈值等于小区域计算出的阈值再减去此值
8.1取均值(ADAPTIVE_THRESH_GAUSSIAN_MEAN_C)
假如我们使用的小区域是3*3的,那么就会从图片的左上角开始(也就是像素值为162的地方)计算其邻域内的平均值,如果处于边缘地区就会对边界进行填充,填充值就是边界的像素点,如下图所示:
代码如下:
'''自适应阈值法——取均值'''img=cv2.imread(r'../15day4.10/src/flower.png',cv2.IMREAD_GRAYSCALE)#127不使用,超过阈值的设置为255 img_b=cv2.adaptiveThreshold(img,255,cv2.ADAPTIVE_THRESH_MEAN_C,cv2.THRESH_BINARY,3,2)#3表示一个正方形的边长(也称为卷积核)必须是奇数 2是一个常数cv2.imshow("img",img)cv2.imshow("img_b",img_b)cv2.waitKey(0)
注意:
cv2.adaptiveThreshold(img,255,cv2.ADAPTIVE_THRESH_MEAN_C,cv2.THRESH_BINARY,3,2)
- 参数2: 255: 输出图像的最大值。在二值化后,超过自适应阈值的像素会被设置为该最大值,通常为255表示白色;未超过阈值的像素将被设置为0,表示黑色。
- 参数3 :表示自适应二值法的类型
- 参数4:表示使用阈值法的类型
- 参数5:表示一个卷积核,表示计算每个像素阈值时所考虑的7x7邻域大小(正方形区域的宽度和高度),其值必须是奇数。
- 参数6:是一个最终阈值减去的常数
8.2加权求和(ADAPTIVE_THRESH_GAUSSIAN_C)
加权求和的原理
首先还是对边界进行填充,然后计算原图中的左上角(也就是162像素值的位置)的二值化阈值,其计算过程如上图所示,再然后根据选择的二值化方法对左上角的像素点进行二值化,之后核向右继续计算第二个像素点的阈值,第三个像素点的阈值…直到右下角(也就是155像素值的位置)为止。
当核的大小不同时,仅仅是核的参数会发生变化,计算过程与此是一样的。
代码如下:
'''自适应二值化——加权值(高斯求和)'''img=cv2.imread(r'../15day4.10/src/flower.png',cv2.IMREAD_GRAYSCALE)img_b=cv2.adaptiveThreshold(img,255,cv2.ADAPTIVE_THRESH_GAUSSIAN_C,cv2.THRESH_BINARY,3,2)#3表示一个正方形的边长(也称为卷积核)必须是奇数 2是一个常数cv2.imshow("img_b",img_b)cv2.imshow("img",img)cv2.waitKey(0)
相关文章:
opencv二值化实验
二值化实验 1二值化说明2 阈值法(THRESH_BINARY)3.反阈值法(THRESH_BINARY_INV)4截断阈值法(THRESH_TRUNC)5 低阈值零处理(THRESH_TOZERO)6 超阈值零处理(THRESH_TOZERO_…...
3DGS之渲染管线
渲染管线(Rendering Pipeline)是计算机图形学中将三维场景转换为二维屏幕图像的核心流程,涉及CPU与GPU的分工协作。计算机图形学把渲染管线分为三个阶段:应用程序阶段、几何阶段、光栅化阶段。渲染管线的一般流程是:顶…...
C#设计模式-状态模式
状态模式案例解析:三态循环灯的实现 案例概述 本案例使用 状态模式(State Pattern) 实现了一个 三态循环灯 的功能。每点击一次按钮,灯的状态会按顺序切换(状态1 → 状态2 → 状态3 → 状态1...)ÿ…...
泛微相关文档以及相关安装包下载
泛微相关文档以及相关安装包下载 泛微相关安装包下载泛微相关安装包下载 泛微E10登录网址:https://www.e-cology.com.cn/login?service=https%3A%2F%2Fwww.e-cology.com.cn%2F Ecode使用说明:https://e-cloudstore.com/doc.html 泛微组件库:https://cloudstore.e-cology…...
软件包安装管理Gitlab
官方提供了非常详尽的系统及自动化脚本安装教程 Gitlab官网下载地址:https://gitlab.cn/install/ 1、安装配置 今天我们说一下包安装管理,这样方便我们自己更精确的制定符合我们自己需要的Gitlab仓库 配置:ubuntu2004(focal) 4C8G 下载程…...
在Java使用rest Client操作ES
1. 导入restClient依赖 <dependency><groupId>org.elasticsearch.client</groupId><artifactId>elasticsearch-rest-high-level-client</artifactId><version>7.12.1</version></dependency> 2. 了解ES核心客户端API 核心区别…...
深入解析Linux软件包管理:apt/yum源配置与Vim编辑器高效使用指南
一、Linux软件包管理与开发工具 1.软件包管理器与Linux软件生态 软件包管理器的作用与分类 什么是软件包? 在Linux下安装软件,一个通常的办法是下载到程序的源代码,并进行编译,得到可执行程序。但是这样太麻烦了,于…...
小程序css实现容器内 数据滚动 无缝衔接 点击暂停
<view class"gundongBox"><!-- 滚动展示信息的模块 --><image class"imgWid" :src"imgurlgundong.png" mode"widthFix"></image><view class"gundongView"><view class"container&qu…...
记录 | Pycharm中如何调用Anaconda的虚拟环境
目录 前言一、步骤Step1 查看anaconda 环境名Step2 Python项目编译器更改 更新时间 前言 参考文章: 参考视频:如何在pycharm中使用Anaconda创建的python环境 自己的感想 这里使用的Pycharm 2024专业版的。我所使用的Pycharm专业版位置:【仅用…...
静态站点生成
以下是关于 静态站点生成(SSG) 的系统知识梳理,涵盖核心概念、核心实现、数据管理与优化等内容: 一、核心概念与优势 定义 静态站点生成(SSG)是在构建阶段预生成所有静态HTML文件的技术,用户访问时直接获取预渲染内容,无需服务器动态生成。 核心优势 性能卓越:CDN缓存…...
Android Jni(二)加载调用第三方 so 库
文章目录 Android Jni(二)加载调用第三方 so 库前置知识CPU架构 ABI 基本步骤1、将第三方 SO 库文件放入项目中的正确位置:2. 创建 JNI 接口3. 实现 JNI 层代码4、配置 CMake 常见问题解决1、UnsatisfiedLinkError:2、函数找不到&…...
解锁元生代:ComfyUI工作流与云原生后端的深度融合
目录 蓝耘元生代:智算新势力崛起 ComfyUI 工作流创建详解 ComfyUI 初印象 蓝耘平台上搭建 ComfyUI 工作流 构建基础工作流实操 代码示例与原理剖析 云原生后端技术全景 云原生后端概念解析 核心技术深度解读 蓝耘元生代中两者的紧密联系…...
LeetCode算法题(Go语言实现)_47
题目 给你一个 m x n 的迷宫矩阵 maze (下标从 0 开始),矩阵中有空格子(用 ‘.’ 表示)和墙(用 ‘’ 表示)。同时给你迷宫的入口 entrance ,用 entrance [entrancerow, entrancecol…...
树莓派_利用Ubuntu搭建gitlab
树莓派_利用Ubuntu搭建gitlab 一、给树莓派3A搭建基本系统 1、下载系统镜像 https://cdimage.ubuntu.com/ubuntu/releases/18.04/release/ 2、准备系统SD卡 二、给树莓派设备联网 1、串口后台登录 使用串口登录后台是最便捷的,因为前期网络可能不好直接成功 默…...
vi(vim)编辑器和root用户与普通用户之间的转换
vim编辑器是vi编辑器的加强版,以vi为例: vi编辑器: vi编辑器可以编辑文件内容 如何进入vi编辑器? 语法: vi 文件路径 如何退出? 语法: wq:保存退出 w:保存 q&…...
【vscode】vscode链接关联github/gitlab
一、windows下载安装git Git - Downloading Package 二、配置Git的用户名和邮箱 Git Bash运行以下命令来配置Git的用户名和邮箱: git config --global user.name "你的用户名" git config --global user.email "你的邮箱地址" 生成本机秘钥…...
Redis面试问题缓存相关详解
Redis面试问题缓存相关详解 一、缓存三兄弟(穿透、击穿、雪崩) 1. 穿透 问题描述: 缓存穿透是指查询一个数据库中不存在的数据,由于缓存不会保存这样的数据,每次都会穿透到数据库,导致数据库压力增大。例…...
Web三漏洞学习(其一:文件上传漏洞)
靶场:云曦历年考核题 一、文件上传 在此之前先准备一个一句话木马 将其命名为muma.txt 23年秋期末考 来给师兄上个马 打开环境以后直接上传muma.txt,出现js弹窗,说明有前端验证 提示只能上传.png .jpg 和 .gif文件,那就把muma.txt的后缀…...
冲刺高分!挑战7天一篇nhanes机器学习SCI!DAY1-7
医学生集合啦,继续挑战 7天一篇nhanes机器学习SCI! Day 1 进展:确定选题、期刊、文献 前面挑战了一期NHANES机器学习,大家使用NHANES的发文章的热情,火爆程度远超想象!我在下面的评论区看到大家的学习欲…...
高并发三剑客-本地缓存之王Caffeine-01缓存应用
1 分布式缓存使用及导致的问题 1.1 hotkey典型业务场景 常规性hotkey:可以提前评估出hotkey的场景,比如:重要节假日、促销活动等 突发性hotkey:没法提前评估,突发性行为,比如:突然新闻、爆炸信息…...
基于Java,SpringBoot,Vue,HTML家政服务预约系统设计
摘要 本文聚焦于基于Java、SpringBoot、Vue和HTML技术的家政服务预约系统的设计与实现。该系统旨在为家政服务的供需双方搭建一个便捷、高效的在线交互平台。后端采用Java语言结合SpringBoot框架,充分利用SpringBoot的自动配置和快速开发特性,实现系统业…...
系统架构设计师:系统架构概述知识体系、考点详解、高效记忆要点、练习题并提供答案与解析
一、系统架构概述知识体系、考点详解 系统架构概述、定义与作用 1. 系统架构的定义与核心要素 系统架构是复杂系统的高层次组织结构,包含硬件/软件组件、交互关系、设计原则及演进策略。其核心要素包括: 构件与模式:现代架构三要素为构件…...
汽配快车道解决chrome backgroud.js(Service Worker) XMLHttpRequest is not defined问题
Chrome 扩展开发:Service Worker 中如何优雅地发送 HTTP 请求 在 Chrome 扩展开发中,Service Worker 是一个非常重要的部分,它可以帮助我们实现很多强大的功能。然而,如果你在 Service Worker 中尝试使用 XMLHttpRequest 来发送 …...
VMware Ubuntu挂载Windows机器的共享文件
https://www.dong-blog.fun/post/2029 在VMware Ubuntu中访问Windows共享文件夹:完整指南 在使用VMware运行Ubuntu虚拟机时,访问Windows主机上的文件是常见需求。本文将详细介绍如何通过网络共享方式,让Ubuntu虚拟机直接访问Windows主机的文…...
LeNet神经网络
一、LeNet概述 1. 历史地位 开创性模型:首个成功应用的卷积神经网络(1998年)应用场景:手写数字识别(MNIST数据集)、银行支票识别提出者:Yann LeCun团队(论文《Gradient-Based Lear…...
Visio绘图工具全面科普:解锁专业图表绘制新境界[特殊字符]
Visio绘图工具全面科普:解锁专业图表绘制新境界🌟 在信息爆炸的时代,清晰、直观地呈现复杂信息变得至关重要。无论是绘制流程图📊、组织结构图👥,还是规划网络拓扑🖧,一款强大的绘图…...
ECharts散点图-散点图3,附视频讲解与代码下载
引言: ECharts散点图是一种常见的数据可视化图表类型,它通过在二维坐标系或其它坐标系中绘制散乱的点来展示数据之间的关系。本文将详细介绍如何使用ECharts库实现一个散点图,包括图表效果预览、视频讲解及代码下载,让你轻松掌握…...
D3路网图技术文档
在本文档中,我们将探讨如何使用 D3.js,结合 SVG(可缩放矢量图形)和 Canvas,来实现高效、交互性强的路网图效果。D3.js 是一个强大的 JavaScript 数据可视化库,可以基于数据驱动文档对象模型(DOM…...
Unity 一些小功能(屏幕画画,)
利用 Line Renderer 实现屏幕画画并保存图片 // 当前正在绘制的 LineRendererprivate LineRenderer currentLineRenderer;// 用于保存所有笔触的列表private List<LineRenderer> allLineRenderers new List<LineRenderer>();// 当前笔触顶点计数器private int ve…...
列表、字符串、heapq堆对列算法
1、列表 1.1 访问最后一个元素 list [1, 2, 3, 4, 5, 6] print(list[-1]) # 61.2 访问列表指定范围,例如第1-4个元素 print(list[0, 4]) # [1, 2, 3, 4]1.3 将字符列表以字符串形式输出 list [h, e, l, l, o] ls "".join(list) print(ls) # "…...
实战指南:封装Whisper为FastAPI接口并实现高并发处理
下面给出一个详细的示例,说明如何使用 FastAPI 封装 OpenAI 的 Whisper 模型,提供一个对外的 REST API 接口,并支持一定的并发请求。 下面是主要步骤和示例代码。 1. 环境准备 Python 环境: 建议使用 Python 3.8。依赖库&#x…...
Arm系统ubuntu20.04中自带的火狐浏览器打开网页B站视频和百度网盘网页视频,视频无法打开,并且没有声音——(本质上解决)
自己工作过程中有一台Orin nx arm设备,所以希望能够用这台设备看视频学习,发现自带的firefox打开网页版百度网盘和B站的时候无法打开视频,而且用有线耳机发现没有声音,最后换掉浏览器,用Chromium。 1、如果还想继续用…...
Qt 自定义控件
在 Qt 中,自定义控件是通过继承现有的 Qt 控件类(如 QWidget、QPushButton、QLabel 等)并重载相关的事件处理函数或绘制函数来实现的。自定义控件允许你根据需求添加特定的功能或样式。 自定义控件的基本步骤 1. 继承 Qt 控件类:…...
Java使用WebSocket视频拆帧进度处理与拆帧图片推送,结合Apipost进行调试
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-websocket</artifactId></dependency>Configuration public class WebSocketConfig {/*** 启动 WebSocket 服务器*/Beanpublic ServerEndpointE…...
Java项目之基于ssm的QQ村旅游网站的设计(源码+文档)
项目简介 QQ村旅游网站实现了以下功能: 管理员权限操作的功能包括管理景点路线,板块信息,留言板信息,旅游景点信息,酒店信息,对景点留言,景点路线留言以及酒店留言信息等进行回复,…...
《 Reinforcement Learning for Education: Opportunities and Challenges》全文阅读
Reinforcement Learning for Education: Opportunities and Challenges 面向教育的强化学习:机遇与挑战 摘要 本综述文章源自作者在 Educational Data Mining (EDM) 2021 会议期间组织的 RL4ED 研讨会。我们组织了这一研讨会,作为一项社区建设工作的组…...
Apache Kafka UI :一款功能丰富且美观的 Kafka 开源管理平台!!
Apache Kafka UI 是一个免费的开源 Web UI,用于监控和管理 Apache Kafka 集群,可方便地查看 Kafka Brokers、Topics、消息、Consumer 等情况,支持多集群管理、性能监控、访问控制等功能。 1 特征 多集群管理: 在一个地方监控和管理…...
无参数RCE
无参数RCE(Remote Code Execution,远程代码执行) 是一种通过利用目标系统中的漏洞,在不直接传递用户可控参数的情况下,实现远程执行任意代码的攻击技术。与传统的RCE攻击不同,无参数RCE不依赖外部输入参数…...
设计模式之状态模式:优雅管理对象行为变化
引言 状态模式(State Pattern)是一种行为型设计模式,它允许对象在其内部状态改变时改变它的行为,使对象看起来似乎修改了它的类。状态模式将状态转移逻辑和状态相关行为封装在独立的状态类中,完美解决了复杂条件判断问…...
拖动滑块 代替验证码,识别机器人的方式,实验原理
拖动滑块验证是一种常见的人机验证技术,用于区分真实用户和自动化程序(如机器人)。其核心原理不仅在于用户是否能将滑块移动到正确位置,还包括对拖动行为的轨迹、速度、加速度等特征的分析。以下是其实现原理及识别机器人的方式&a…...
深度访谈:数据中台的本质不是技术堆砌,而是业务引擎的重构
在数字化转型进入深水区的今天,企业逐渐意识到单纯的技术堆砌无法解决业务核心痛点。数据的割裂、重复建设的烟囱式系统、滞后于业务的分析能力,正迫使企业寻找“系统性解法”。 “未来的竞争,本质是数据响应速度的竞争。当竞争对手还在讨论‘…...
Spark中Maven的用法
在IDEA中去创建项目,并编写java代码来操作集群中的文件 1.IDEA 中创建 Maven 项目 步骤一:点击 File -> New -> Project,在弹出的窗口左侧选择 Maven,点击 Next: 步骤二:填写项目的 GroupId、Arti…...
tomcat http 怎么改成 https
步骤 1:生成自签名证书 如果你没有可用的 SSL/TLS 证书,可以使用 Java 的 keytool 工具生成一个自签名证书。 bash复制代码 keytool -genkeypair -alias tomcat -keyalg RSA -keystore keystore.jks -keysize 2048 执行此命令后,系统会提…...
Playwright与Selenium详细对比及Playwright快速入门
Playwright 与 Selenium 详细对比及入门指南索引 简介 本文章旨在帮助测试工程师了解Playwright和Selenium这两个主流的UI自动化测试工具,并快速入门Playwright。文档分为多个部分,本文作为主要索引,提供核心对比和基本概念,而详…...
03 UV
04 Display工具栏_哔哩哔哩_bilibili 讲的很棒 ctrlMMB 移动点 s 打针 ss 批量打针...
hadoop执行sqoop任务找不到jar
sqoop:1.4.7 hadoop:3.4.1 数据:oracel-hdfs 2025-04-15 16:57:00,850 INFO sqoop.Sqoop: Running Sqoop version: 1.4.7 2025-04-15 16:57:00,901 WARN tool.BaseSqoopTool: Setting your password on the command-line is insecure. Consider using -P instead. 2025-04-15 …...
【C#】Html转Pdf,Spire和iTextSharp结合,.net framework 4.8
🌹欢迎来到《小5讲堂》🌹 🌹这是《C#》系列文章,每篇文章将以博主理解的角度展开讲解。🌹 🌹温馨提示:博主能力有限,理解水平有限,若有不对之处望指正!&#…...
Mac系统升级node.js版本和npm版本并安装pnpm
1.升级node.js版本 第一步:查询当前node.js版本 node -v第二步:清除node.js的缓存 sudo npm cache clean -f第三步:验证缓存是否清空 npm cache verify第四步:安装n工具,n工具是专门用于管理node.js版本的工具 su…...
记录分享《若依Spring Cloud本地开发部署教程》
若依Spring Cloud本地开发部署教程 若依(RuoYi)是一个基于Spring Boot和Spring Cloud的权限管理系统,提供了丰富的功能模块和开箱即用的解决方案。本文将详细介绍如何在本地环境中进行若依Spring Cloud的开发和部署。 一、环境准备 Java环境…...
(小白0基础) 微调deepseek-8b模型参数详解以及全流程——训练篇
本篇参考bilibili如何在本地微调DeepSeek-R1-8b模型_哔哩哔哩_bilibili 上篇:(小白0基础) 租用AutoDL服务器进行deepseek-8b模型微调全流程(Xshell,XFTP) —— 准备篇 初始变量 max_seq_length 2048 dtype None load_in_4bit True单批次最大处理模型大小dy…...