OpenCV day6
函数内容接上文:OpenCV day4-CSDN博客 , OpenCV day5-CSDN博客
目录
平滑(模糊)
25.cv2.blur():
26.cv2.boxFilter():
27.cv2.GaussianBlur():
28.cv2.medianBlur():
29.cv2.bilateralFilter():
锐化与边缘检测
30.cv2.filter2D():
31.cv2.Sobel():
32.cv2.Scharr():
33.cv2.Laplacian():
34.cv2.Canny():
绘图与标注
35.cv2.line():
36.cv2.rectangle():
37.cv2.polylines():
38.cv2.ellipse():
39.cv2.circle():
40.cv2.putText():
轮廓分析
41.cv2.findContours():
42.cv2.drawContours():
43.cv2.approxPolyDP():
平滑(模糊)
25.cv2.blur():
| 功能 | 对图像进行均值模糊(平滑处理),通过邻域像素的平均值减少噪声或细节。 |
| 参数 | 1. src:输入图像(单通道或多通道)。2. ksize:模糊核大小(如 (5,5))。3. anchor(可选):锚点位置(默认 (-1,-1) 表示核中心)。4. borderType(可选):边界填充方式(如 cv2.BORDER_DEFAULT)。 |
| 返回值 | 模糊后的图像(numpy.ndarray)。 |
关键点:
-
均值滤波:核内所有像素取平均,适用于简单去噪(但可能边缘模糊)。
-
核大小:
ksize必须是正奇数(如(3,3)、(5,5))。
26.cv2.boxFilter():
| 功能 | 对图像进行方框滤波(均值滤波的通用版本,可控制归一化)。 |
| 参数 | 1. src:输入图像。2. ddepth:输出图像深度(如 -1 表示与输入相同)。3. ksize:滤波核大小(如 (3,3))。4. normalize(可选):是否归一化(默认 True,效果同 cv2.blur())。5. anchor(可选):锚点位置(默认核中心)。6. borderType(可选):边界填充方式(如 cv2.BORDER_REFLECT)。 |
| 返回值 | 滤波后的图像(numpy.ndarray)。 |
关键特性:
-
归一化:
normalize=True时等同于cv2.blur()(求均值),False时直接求和(可能导致值溢出)。 -
灵活性:可自定义输出图像深度(如
cv2.CV_32F保留浮点结果)。
27.cv2.GaussianBlur():
| 功能 | 对图像进行高斯模糊(基于高斯分布的加权平均滤波,有效减少噪声并保留边缘)。 |
| 参数 | 1. src:输入图像(支持多通道)。2. ksize:高斯核大小(宽高为正奇数,如(5,5))。3. sigmaX:X方向标准差(控制模糊强度,0表示自动计算)。4. sigmaY(可选):Y方向标准差(默认同sigmaX)。5. borderType(可选):边界填充方式(如cv2.BORDER_DEFAULT)。 |
| 返回值 | 高斯模糊后的图像(numpy.ndarray)。 |
关键特性:
-
高斯权重:中心像素权重高,边缘权重低,比均值模糊更保边缘。
-
标准差:
sigma越大,模糊效果越强(若为0,则根据ksize自动计算)。 -
核大小:必须是正奇数(如
(3,3)、(5,5))。
28.cv2.medianBlur():
| 功能 | 对图像进行中值模糊(用邻域像素的中值替代中心像素,有效去除椒盐噪声)。 |
| 参数 | 1. src:输入图像(支持单通道或多通道,但深度需为CV_8U或CV_32F)。2. ksize:滤波核大小(必须为大于1的奇数,如3、5等)。 |
| 返回值 | 中值滤波后的图像(numpy.ndarray)。 |
关键特性:
-
非线性滤波:取邻域中位数,非均值/加权平均,适合去除椒盐噪声(突发的黑白噪点)。
-
保护边缘:相比均值模糊,能更好保留锐利边缘。
-
核限制:核大小必须是奇数(如3、5、7),且不能为1。
29.cv2.bilateralFilter():
| 功能 | 对图像进行双边滤波,在平滑噪声的同时保留边缘(非线性能量保持滤波)。 |
| 参数 | 1. src:输入图像(8位或浮点型,单通道或多通道)。2. d:邻域直径(若≤0则根据sigmaSpace计算)。3. sigmaColor:颜色空间标准差(控制颜色相似性权重)。4. sigmaSpace:坐标空间标准差(控制距离权重)。5. borderType(可选):边界填充方式(默认cv2.BORDER_DEFAULT)。 |
| 返回值 | 滤波后的图像(numpy.ndarray)。 |
关键特性:
-
边缘保留:结合颜色相似性和空间距离双重权重,避免边缘模糊。
-
参数敏感:
sigmaColor越大,颜色容忍度越高;sigmaSpace越大,远处像素影响越大。 -
计算较慢:比高斯滤波耗时,适合小区域或实时性要求不高的场景。
锐化与边缘检测
30.cv2.filter2D():
| 功能 | 对图像进行自定义卷积操作,通过用户定义的核(Kernel)实现滤波效果。 |
| 参数 | 1. src:输入图像(单通道或多通道)。2. ddepth:输出图像深度(如 -1 表示与输入相同)。3. kernel:卷积核(numpy.ndarray,需为单通道浮点矩阵)。4. anchor(可选):核的锚点位置(默认中心)。5. delta(可选):卷积后叠加的常数(默认0)。6. borderType(可选):边界填充方式(如 cv2.BORDER_CONSTANT)。 |
| 返回值 | 卷积后的图像(numpy.ndarray)。 |
关键特性:
-
灵活性强:可自定义核实现锐化、边缘检测、模糊等效果。
-
数学本质:核与图像局部区域做点乘后求和(离散卷积运算)。
-
边界处理:默认填充黑色,可通过
borderType调整。
31.cv2.Sobel():
| 功能 | 使用Sobel算子计算图像的一阶梯度(用于边缘检测)。 |
| 参数 | 1. src:输入图像(单通道)。2. ddepth:输出图像深度(如cv2.CV_64F保留负梯度)。3. dx:x方向导数阶数(如1表示检测垂直边缘)。4. dy:y方向导数阶数(如1表示检测水平边缘)。5. ksize(可选):Sobel核大小(默认3,仅支持1/3/5/7)。6. scale(可选):缩放因子(默认1)。7. delta(可选):结果叠加的常数(默认0)。8. borderType(可选):边界填充方式(默认cv2.BORDER_DEFAULT)。 |
| 返回值 | 梯度图像(numpy.ndarray)。 |
关键特性
-
梯度方向
-
dx=1, dy=0:检测垂直边缘(对x方向求导)。 -
dx=0, dy=1:检测水平边缘(对y方向求导)。 -
dx=1, dy=1:同时检测两个方向的边缘(不常用,推荐分开计算后合并)。
-
-
核大小
-
ksize=1:使用1×3或3×1核(无高斯平滑)。 -
ksize=3(默认):3×3核,含高斯权重,抗噪性更好。
-
-
输出深度
-
使用
cv2.CV_64F保留负梯度值,最后取绝对值:
-
grad_x = cv2.Sobel(img, cv2.CV_64F, 1, 0)
abs_grad = cv2.convertScaleAbs(grad_x) # 转为8位无符号
32.cv2.Scharr():
| 项目 | 说明 |
|---|---|
| 功能 | 使用Scharr算子计算图像的一阶梯度(比Sobel更精确的边缘检测)。 |
| 参数 | 1. src:输入图像(单通道)。2. ddepth:输出图像深度(如cv2.CV_64F)。3. dx:x方向导数阶数(1或0)。4. dy:y方向导数阶数(1或0)。5. scale(可选):缩放因子(默认1)。6. delta(可选):结果叠加的常数(默认0)。7. borderType(可选):边界填充方式(默认cv2.BORDER_DEFAULT)。 |
| 返回值 | 梯度图像(numpy.ndarray)。 |
核心特性
-
与Sobel的对比
-
更高精度:Scharr算子使用3×3核时,对梯度的近似计算比Sobel更精确(尤其对对角边缘)。
-
固定核大小:仅支持
ksize=3(不可像Sobel那样选择1/5/7)。
-
-
梯度方向
-
dx=1, dy=0:检测垂直边缘。 -
dx=0, dy=1:检测水平边缘。 -
不支持
dx=dy=1(需分开计算后合并)。
-
33.cv2.Laplacian():
| 项目 | 说明 |
|---|---|
| 功能 | 使用拉普拉斯算子计算图像的二阶导数,用于边缘检测(对噪声敏感,但能检测全方向边缘)。 |
| 参数 | 1. src:输入图像(单通道)。2. ddepth:输出图像深度(如 cv2.CV_64F 保留负值)。3. ksize(可选):核大小(默认1,仅支持1/3/5/7)。4. scale(可选):缩放因子(默认1)。5. delta(可选):结果叠加的常数(默认0)。6. borderType(可选):边界填充方式(默认 cv2.BORDER_DEFAULT)。 |
| 返回值 | 二阶梯度图像(numpy.ndarray)。 |
34.cv2.Canny():
| 功能 | 使用Canny算法进行多阶段边缘检测(低错误率+边缘细化)。 |
| 参数 | 1. image:输入图像(必须为单通道灰度图)。2. threshold1:低阈值(弱边缘筛选)。3. threshold2:高阈值(强边缘确认)。4. apertureSize(可选):Sobel算子核大小(默认3)。5. L2gradient(可选):梯度计算方式(True用L2范数更精确,默认False用L1范数)。 |
| 返回值 | 二值边缘图像(numpy.ndarray,边缘=255,背景=0)。 |
关键特性
-
双阈值机制
-
强边缘:梯度值 >
threshold2→ 保留。 -
弱边缘:
threshold1< 梯度值 ≤threshold2→ 仅当与强边缘连接时保留。 -
建议比例:
threshold2 ≈ 2×threshold1(如50, 150)。
-
-
处理流程
-
输出效果
-
边缘为细线(1像素宽),背景纯黑。
-
对噪声鲁棒,但依赖阈值参数调优。
-
绘图与标注
35.cv2.line():
| 功能 | 在图像上绘制一条线段。 |
| 参数 | 1. img:输入图像(直接修改该图像)。2. pt1:线段起点坐标 (x1, y1)。3. pt2:线段终点坐标 (x2, y2)。4. color:线条颜色(BGR三元组,如 (255,0,0) 表示红色)。5. thickness(可选):线条粗细(默认1)。6. lineType(可选):线条类型(如 cv2.LINE_AA 抗锯齿)。7. shift(可选):坐标小数位数(默认0)。 |
| 返回值 | 无(直接修改输入图像)。 |
关键特性
-
坐标系统
-
原点
(0,0)在图像左上角,x向右增长,y向下增长。
-
-
线条样式
-
lineType=cv2.LINE_AA:抗锯齿线条(更平滑,但速度稍慢)。 -
lineType=cv2.LINE_8:8连通快速绘制(默认)。
-
-
颜色模式
-
BGR顺序:OpenCV默认格式(与RGB相反),例如红色为
(0,0,255)。
-
36.cv2.rectangle():
| 功能 | 在图像上绘制矩形(空心或实心)。 |
| 参数 | 1. img:输入图像(直接修改该图像)。2. pt1:矩形左上角坐标 (x1, y1)。3. pt2:矩形右下角坐标 (x2, y2)。4. color:矩形颜色(BGR三元组,如 (0,255,0) 表示绿色)。5. thickness(可选):线条粗细(默认1,负数表示填充矩形)。6. lineType(可选):线条类型(如 cv2.LINE_AA 抗锯齿)。7. shift(可选):坐标小数位数(默认0)。 |
| 返回值 | 无(直接修改输入图像)。 |
关键特性
-
坐标定义
-
pt1和pt2分别对应矩形的左上角和右下角(无需保证x2>x1或y2>y1,函数会自动处理)。
-
-
填充模式
-
thickness=-1:用指定颜色填充整个矩形。 -
thickness≥1:绘制空心矩形边框。
-
-
颜色与样式
-
BGR顺序:例如蓝色为
(255,0,0)。 -
lineType=cv2.LINE_AA:抗锯齿边框(适合倾斜矩形)。
-
37.cv2.polylines():
| 功能 | 在图像上绘制一个或多个多边形(空心或实心)。 |
| 参数 | 1. img:输入图像(直接修改该图像)。2. pts:多边形顶点数组(格式见示例)。3. isClosed:是否闭合多边形(True=首尾相连)。4. color:线条颜色(BGR三元组)。5. thickness(可选):线条粗细(默认1)。6. lineType(可选):线条类型(如 cv2.LINE_AA)。7. shift(可选):坐标小数位数(默认0)。 |
| 返回值 | 无(直接修改输入图像)。 |
关键特性
-
顶点格式
-
单个多边形:
np.array([[x1,y1], [x2,y2], ...], dtype=np.int32) -
多个多边形:
[poly1_pts, poly2_pts, ...](列表包裹多个数组)
-
-
闭合控制
-
isClosed=True:自动连接首尾点(如绘制五角星)。 -
isClosed=False:开放路径(如绘制折线)。
-
-
批量绘制
-
可一次性绘制多个多边形,比循环调用
cv2.line()更高效。
-
38.cv2.ellipse():
| 项目 | 说明 |
|---|---|
| 功能 | 在图像上绘制椭圆(空心或实心)、圆弧或扇形。 |
| 参数 | 1. img:输入图像(直接修改)。2. center:椭圆中心 (x,y)。3. axes:主轴长度 (长轴,短轴)。4. angle:旋转角度(顺时针,度)。5. startAngle:起始角度(0°为3点钟方向)。6. endAngle:结束角度(如360°完整椭圆)。7. color:颜色(BGR)。8. thickness(可选):线宽(默认1,-1填充)。9. lineType(可选):线型(如cv2.LINE_AA)。10. shift(可选):坐标小数位数(默认0)。 |
| 返回值 | 无(直接修改输入图像)。 |
关键特性
-
角度定义
-
angle:椭圆整体旋转角度(如0°时长轴水平)。 -
startAngle/endAngle:局部弧线范围(0°→360°绘制完整椭圆)。
-
-
填充模式
-
thickness=-1:填充图形(如绘制实心圆)。 -
thickness≥1:绘制边框。
-
-
特殊图形
-
圆:设
axes=(r,r)且angle=0。 -
扇形:设
startAngle=30, endAngle=270。
-
39.cv2.circle():
| 功能 | 在图像上绘制圆形(空心或实心)。 |
| 参数 | 1. img:输入图像(直接修改)。2. center:圆心坐标 (x,y)。3. radius:圆半径(像素)。4. color:颜色(BGR三元组)。5. thickness(可选):线宽(默认1,-1表示填充)。6. lineType(可选):线型(如 cv2.LINE_AA 抗锯齿)。7. shift(可选):坐标小数位数(默认0)。 |
| 返回值 | 无(直接修改输入图像)。 |
关键特性
-
坐标系统
-
圆心
(x,y)的坐标系原点在图像左上角,x向右增长,y向下增长。
-
-
填充模式
-
thickness=-1:绘制实心圆(如标记目标中心点)。 -
thickness≥1:绘制空心圆(如标记检测框)。
-
-
抗锯齿
-
lineType=cv2.LINE_AA:边缘平滑(适合高分辨率图像)。 -
lineType=cv2.LINE_8:快速绘制(默认)
-
40.cv2.putText():
| 项目 | 说明 |
|---|---|
| 功能 | 在图像上绘制文字(支持多种字体、大小和样式)。 |
| 参数 | 1. img:输入图像(直接修改)。2. text:要绘制的字符串。3. org:文字左下角起点 (x,y)。4. fontFace:字体类型(如 cv2.FONT_HERSHEY_SIMPLEX)。5. fontScale:字体缩放因子(大小)。6. color:文字颜色(BGR三元组)。7. thickness(可选):文字粗细(默认1)。8. lineType(可选):线型(如 cv2.LINE_AA)。9. bottomLeftOrigin(可选):坐标系原点是否在左下角(默认False,即左上角)。 |
| 返回值 | 无(直接修改输入图像)。 |
关键特性
-
字体支持
-
常用字体:
cv2.FONT_HERSHEY_SIMPLEX(标准)、cv2.FONT_HERSHEY_SCRIPT_SIMPLEX(手写体)等。 -
中文支持:需加载中文字体文件(如
Pillow库配合使用)。
-
-
坐标系统
-
org默认基于左上角坐标系((0,0)在左上角)。 -
设
bottomLeftOrigin=True可切换为左下角坐标系(数学坐标系)。
-
-
抗锯齿
-
lineType=cv2.LINE_AA:文字边缘平滑(推荐)。 -
lineType=cv2.LINE_8:快速渲染(默认)。
-
轮廓分析
41.cv2.findContours():
| 功能 | 从二值图像中提取轮廓(可用于物体形状分析、边缘检测等)。 |
| 参数 | 1. image:输入二值图像(通常需先阈值化或边缘检测)。2. mode:轮廓检索模式(如 cv2.RETR_EXTERNAL 仅外轮廓)。3. method:轮廓近似方法(如 cv2.CHAIN_APPROX_SIMPLE 压缩冗余点)。4. offset(可选):轮廓点坐标偏移量(默认 (0,0))。 |
| 返回值 | 1. contours:轮廓列表(每个轮廓为 np.array 的点集)。2. hierarchy:轮廓层级关系(树结构描述父子轮廓)。 |
关键参数详解
1. 检索模式(mode)
| 模式 | 说明 |
|---|---|
cv2.RETR_EXTERNAL | 仅检测最外层轮廓(忽略内部孔洞)。 |
cv2.RETR_LIST | 检测所有轮廓,无层级关系(hierarchy 为无效值)。 |
cv2.RETR_TREE | 检测所有轮廓并建立完整层级树(记录父子关系)。 |
2. 近似方法(method)
| 方法 | 说明 |
|---|---|
cv2.CHAIN_APPROX_NONE | 存储轮廓所有点(坐标完整,但冗余)。 |
cv2.CHAIN_APPROX_SIMPLE | 压缩水平、垂直、对角线方向的冗余点(如矩形仅保留4个角点)。 |
42.cv2.drawContours():
| 功能 | 在图像上绘制轮廓(支持自定义颜色、线宽、层级过滤)。 |
| 参数 | 1. image:输入图像(直接修改)。2. contours:轮廓列表(来自cv2.findContours())。3. contourIdx:要绘制的轮廓索引(-1表示全部)。4. color:轮廓颜色(BGR三元组)。5. thickness(可选):线宽(默认1,-1表示填充)。6. lineType(可选):线型(如cv2.LINE_AA)。7. hierarchy(可选):层级关系(用于过滤)。8. maxLevel(可选):最大绘制层级(默认0,仅当前层)。9. offset(可选):轮廓点坐标偏移量。 |
| 返回值 | 无(直接修改输入图像)。 |
关键特性
-
轮廓选择
-
contourIdx=-1:绘制所有轮廓。 -
contourIdx=2:仅绘制列表中第3个轮廓(索引从0开始)。
-
-
填充模式
-
thickness=-1:填充轮廓内部(如生成掩膜)。 -
thickness≥1:绘制空心轮廓。
-
-
层级控制
-
结合
hierarchy和maxLevel可选择性绘制子轮廓(如只画最外层)。
-
43.cv2.approxPolyDP():
| 功能 | 用Douglas-Peucker算法对轮廓多边形进行近似(减少顶点数,保持形状)。 |
| 参数 | 1. curve:输入轮廓(np.array 形状为 (N,1,2))。2. epsilon:近似精度(值越小,越接近原始轮廓)。3. closed:是否闭合轮廓(默认 True)。 |
| 返回值 | 近似后的多边形点集(np.array 形状为 (M,1,2),M≤N)。 |
关键特性
-
算法原理
-
通过设定最大距离容差(
epsilon)压缩冗余顶点,保留关键转折点
-
-
参数选择
-
epsilon通常取轮廓周长的百分比(如0.02*cv2.arcLength(curve, True))。 -
closed=True时强制首尾相连。
-
-
应用场景
-
简化复杂轮廓(如文档边界矫正)。
-
形状分类(通过顶点数判断矩形、三角形等)。
-
注意事项
-
输入格式:轮廓必须是
(N,1,2)形状(与cv2.findContours()输出一致)。 -
精度控制:
epsilon过大可能导致过度简化(如六边形变三角形)。 -
闭合性:开放曲线(如折线)需设
closed=False。
相关文章:
OpenCV day6
函数内容接上文:OpenCV day4-CSDN博客 , OpenCV day5-CSDN博客 目录 平滑(模糊) 25.cv2.blur(): 26.cv2.boxFilter(): 27.cv2.GaussianBlur(): 28.cv2.medianBlur(): 29.cv2.bilateralFilter(): 锐…...
AI的出现,是否能替代IT从业者?
一、技术能力的边界:AI 能做什么? 自动化基础任务 代码生成:GitHub Copilot、天工 AI 等工具可自动生成 80% 以上的重复性代码,例如根据自然语言描述生成完整的网站前端代码。测试与运维:AI 驱动的测试工具能自动生成测…...
【AI飞】AutoIT入门七(实战):python操控autoit解决csf视频批量转换(有点难,AI都不会)
背景: 终极目标:通过python调用大模型,获得结果,然后根据返回信息,控制AutoIT操作电脑软件,执行具体工作。让AI更具有执行力。 已完成部分: 关于python调用大模型的,可以参考之前的…...
MARA/MARC表 PSTAT字段
最近要开发一个维护物料视图的功能。其中PSTAT字段是来记录已经维护的视图的。这里记录一下视图和其对应的字母。 MARA还有个VPSTA(完整状态)字段,不过在我试的时候每次PSTAT出现一个它就增加一个,不知道具体是为什么。 最近一直…...
《探秘鸿蒙分布式软总线:开启无感发现与零等待传输新时代》
在数字化浪潮中,设备之间的互联互通成为构建智能生态的关键。鸿蒙系统中的分布式软总线技术,宛如一座桥梁,让各种智能设备紧密相连。尤其是其实现的设备间无感发现和零等待传输功能,更是为用户带来了前所未有的便捷体验࿰…...
学习型组织与系统思考
真正的学习型组织不是只关注个人的学习,而是关注整个系统的学习。—彼得圣吉 在这两年里,越来越多的企业开始询问是否可以将系统思考的内容内化给自己的内训师,进而在公司内部进行教学。我非常理解企业这样做的动机,毕竟内部讲师…...
支持mingw g++14.2 的c++23 功能print的vscode tasks.json生成调试
在mingw14.2版本中, print库的功能默认没有开启, 生成可执行文件的tasks.json里要显式加-lstdcexp, 注意放置顺序. tasks.json (支持mingw g14.2 c23的print ) {"version": "2.0.0","tasks": [{"type": "cppbuild","…...
守护者进程小练习
守护者进程含义 定义:守护进程(Daemon)是运行在后台的特殊进程,独立于控制终端,周期性执行任务或等待事件触发。它通常以 root 权限运行,名称常以 d 结尾(如 sshd, crond)。 特性&a…...
opencv函数展示3
一、图像平滑(模糊) 线性滤波(速度快): 1.cv2.blur() 2.cv2.boxFilter() 3.cv2.GaussianBlur() 非线性滤波(速度慢但效果好): 4.cv2.medianBlur() 5.cv2.bilateralFilter() 二、锐…...
环境搭建与入门:Flutter SDK安装与配置
环境搭建与入门:Flutter SDK安装与配置 一、Flutter开发环境概述 1.1 Flutter开发环境组成 Flutter开发环境主要包含以下几个关键组件: Flutter SDK:Flutter的核心开发工具包Dart SDK:Flutter使用的编程语言环境IDE/编辑器&am…...
linux驱动之poll
驱动中 poll 实现 在用户空间实现事件操作的一个主要实现是调用 select/poll/epoll 函数。那么在驱动中怎么来实现 poll 的底层呢? 其实在内核的 struct file_operations 结构体中有一个 poll 成员,其就是底层实现的接口函数。 驱动中 poll 函数实现原…...
遥感技术赋能电力设施监控:应用案例篇
目前主流的电力巡检手段利用无人机能够通过设定灵活航线进行低空飞行、搭载不同的采集设备,能够从不同角度对输电线进行贴近拍摄,但缺陷是偏远山区无人机飞行技术要求高,成本高,且飞行的无人机也可能会对输电线产生破坏。 星图云开…...
SpringAI+DeepSeek大模型应用开发——5 ChatPDF
ChatPDF 知识库 RAG检索增强 由于训练大模型非常耗时,再加上训练语料本身比较滞后,所以大模型存在知识限制问题: 知识数据比较落后,往往是几个月之前的;不包含太过专业领域或者企业私有的数据; 为了解决…...
yolov8 框架自带模型体验功能
简介 YOLOv8 是 ultralytics 公司在 2023 年 1月 10 号开源的 YOLOv5 的下一个重大更新版本,目前支持图像分类、物体检测和实例分割任务。 YOLOv8 是一个 SOTA 模型,它建立在以前 YOLO 版本的成功基础上,并引入了新的功能和改进,…...
柴油机气缸体顶底面粗铣组合机床总体及夹具设计
一、引言 柴油机气缸体是柴油机的关键部件,其顶底面的加工精度直接影响气缸体的装配质量和柴油机的性能。粗铣是气缸体顶底面加工的重要工序,设计一款高效、精确的粗铣组合机床及配套夹具,对于提高气缸体加工效率和质量具有重要意义。 二、…...
SpringBoot - Minio
1、简介 MinIO 是一个开源的对象存储服务器,用于存储和管理大规模的非结构化数据,例如图像、视频、日志文件、备份和容器镜像。MinIO 旨在提供高性能、高可用性、可扩展性和易用性的对象存储解决方案,适用于私有云、公共云和混合云环境。2、…...
Android --- SystemUI启动流程
1.main 函数入口,调用SystemServer().run()方法 代码路径:frameworks/base/services/java/com/android/server/SystemServer.java 2.run 方法中有3种服务的启动,我们主要看StartOtherService 代码路径:frameworks/base/services/java/com/android/se…...
docker镜像被覆盖了怎么办?通过sha256重新上传镜像
如果一个镜像通过相同的标签被重新推送(覆盖),那么旧的镜像内容虽然在 Docker 的存储中可能仍然存在,但通过原来的标签将无法直接访问到它。Docker 和 Harbor 默认情况下不会自动删除旧的镜像层,除非进行了垃圾回收&am…...
(二十六)Java观察者模式在Android开发中的应用详解
Java观察者模式在Android开发中的应用 观察者模式(Observer Pattern)是一种行为型设计模式,它定义了一种一对多的依赖关系,使得多个观察者对象可以同时监听一个主题对象。当主题对象的状态发生变化时,所有注册的观察者…...
【SpringMVC】深入解析自定义拦截器、注册配置拦截器、拦截路径方法及常见拦截路径、排除拦截路径、拦截器的执行流程
拦截器 上个章节我们完成了强制登录的功能, 后端程序根据Session来判断用户是否登录, 但是实现方法是比较麻烦的: 需要修改每个接口的处理逻辑需要修改每个接口的返回结果接口定义修改, 前端代码也需要跟着修改 有没有更简单的办法, 统一拦截所有的请求, 并进行Se…...
基于VS Code 为核心平台的python语言智能体开发平台搭建
以下是基于 VS Code 为核心平台,整合 Node-RED、Gradio、Docker Desktop 的智能体可视化开发平台优化方案,聚焦工具链深度集成与开发效率提升: 一、核心架构设计 #mermaid-svg-f8l9kYPAlJ2TlpGF {font-family:"trebuchet ms",verd…...
使用最新threejs复刻经典贪吃蛇游戏的3D版,附完整源码
基类Entity 建立基类Entity,实现投影能力、动画入场效果(从小变大的弹性动画)、计算自己在地图格位置的方法。 // 导入gsap动画库(用于创建补间动画) import gsap from gsap// 定义Entity基类 export default class …...
论坛测试报告
作者前言 🎂 ✨✨✨✨✨✨🍧🍧🍧🍧🍧🍧🍧🎂 🎂 作者介绍: 🎂🎂 🎂 🎉🎉🎉…...
IPMI 与 Redfish API简介
--- ### **IPMI 与 Redfish API 详解** #### **1. IPMI(智能平台管理接口)** **简介** IPMI(Intelligent Platform Management Interface)是一种硬件级别的带外管理标准,允许管理员通过独立于操作系统的网络通道(BMC)监控和管理服务器硬件,即使主机已关机或操作系…...
zset.
zset 有序集合 zset 保留了 set 不能有重复元素的特点 zset 中的每个元素都有一个唯一的浮点类型的分数(score)与之关联,使得 zset 内部的元素是可以维护有序性的。但是这个有序不是用下标作为排序依据的,而是根据分数…...
Windows 部署 DeepSeek 详细教程
一、准备工作 系统要求: 建议Windows 10 22H2 或更高版本,家庭版或专业版上网环境: 建议科学上网,国内访问部分网站会很慢设备要求: 内存8G以上、关闭防火墙 二、安装Ollama 官网链接: https://ollama.com/downloadg…...
过去十年前端框架演变与技术驱动因素剖析
一、技术演进脉络(2013-2023) 2013-2015:结构化需求催生框架雏形 早期的jQuery虽然解决了跨浏览器兼容性问题(如IE8兼容性处理),但其松散的代码组织方式难以支撑复杂应用开发。Backbone.js的出现首次引入M…...
从零开始学A2A一:A2A 协议的高级应用与优化
A2A 协议的高级应用与优化 学习目标 掌握 A2A 高级功能 理解多用户支持机制掌握长期任务管理方法学习服务性能优化技巧 理解与 MCP 的差异 分析多智能体场景下的优势掌握不同场景的选择策略 第一部分:多用户支持机制 1. 用户隔离架构 #mermaid-svg-Awx5UVYtqOF…...
#Linux动态大小裁剪以及包大小变大排查思路
1 动态库裁剪 库分为动态库和静态库,动态库是在程序运行时才加载,静态库是在编译时就加载到程序中。动态库的大小通常比静态库小,因为动态库只包含了程序需要的函数和数据,而静态库则包含了所有的函数和数据。静态库可以理解为引入…...
基于微信小程序的中医小妙招系统的设计与实现
hello hello~ ,这里是 code袁~💖💖 ,欢迎大家点赞🥳🥳关注💥💥收藏🌹🌹🌹 🦁作者简介:一名喜欢分享和记录学习的在校大学生…...
