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(): 锐…...
MySQL:Join连接的原理
连接查询的执行过程: 确定第一个需要查询的表【驱动表】 选取代价最小的访问方法去执行单表查询语句 从驱动表每获取到一条记录,都需要到t2表中查找匹配的记录 两表连接查询需要查询一次t1表,两次t2表,在两表的连接查询中&…...
Linux MySQL版本升级(rpm安装方式)
一、背景 近期生产环境扫描发现MySQL的多个安全漏洞。目前厂商已经发布了升级补丁以修复此安全问题,补丁获取链接:https://www.oracle.com/security-alerts/cpuoct2024.html 二、升级注意事项 备份数据:升级前务必备份数据库。检查兼容性&…...
数字图像处理(膨胀与腐蚀)
腐蚀 核心原理:结构元四肢运算结果全为1,则结构元中心为1,否则为0。 怎么计算是否为1还是为0 结构元的值与前景的值进行与运算,如果结构元四肢的与运算结果全为1,则结构元中心为1,否则为0。 假设下图为结构…...
J值即正义——Policy Gradient思想、REINFORCE算法,以及贪吃蛇小游戏(三)
文章目录 前情提要谁的J值大呢?那么 ∇ θ J ( θ ) \nabla_\theta J(\theta) ∇θJ(θ)要怎么求呢?构建loss函数**代码实现示例**(PyTorch伪代码):前情提要 上回咱说道,对于强化学习而言,J值即正义。 比如,你当了老板,你手下的两个高管,分别都为公司的发展提出了…...
pdfjs库使用3
.App { text-align: center; height: 100vh; display: flex; flex-direction: column; background-color: #f5f5f5; } /* PDF 查看器容器样式 */ .pdf-viewer { flex: 1; padding: 20px; max-width: 100%; margin: 0 auto; box-sizing: border-box; background-color: white;…...
transformer-词嵌入和位置嵌入详解
文章目录 1、介绍一下位置嵌入Positional Encoding、什么是Positional Encoding呢?为什么Transformer需要Positional Enconding? Transformer 的 Positional Encoding 是如何表达相对位置关系的?2、我来简单举个例子2.1 词向量:每个token都会…...
大模型本地部署之ollama安装及deepseek、qwen等模型下载操作
大模型本地部署之----ollama安装指南 最新版--下载方式 Download Ollama on macOS 因github下载较慢,可以网上搜索github加速工具下载 ----download后加版本号 例如: https://github.com/ollama/ollama/releases/download/v0.6.5/OllamaSetup.exe 通过网盘分享…...
ffprobe 输出 HEVC 码流 Level:标准的 “错位” 与分析的 “归位”
问题描述 最近用ffprobe分析HEVC/H265的码流,发现了与理论知识不符合的现象,比如针对一个H265的码流,用ffprobe输入命令 ffprobe -show_streams 1.h265 时,输入如下;可以看到 H265 的码流 Level 显示等于 93,打印值与标准理论值不符合,用其他工具分析此时 Level 等于 3.…...
线程池七个参数的含义
Java中的线程池里七个参数的以及其各自的含义 面试题:说一下线程池七个参数的含义? 所谓的线程池的 7 大参数是指,在使用 ThreadPoolExecutor 创建线程池时所设置的 7 个参数,如以下源码所示: public ThreadPoolExe…...
EnlightenGAN:低照度图像增强
简介 简介:记录如何使用EnlightenGAN来做低照度图像增强。该论文主要是提供了一个高效无监督的生成对抗网络,通过全球局部歧视器结构,一种自我调节的感知损失融合,以及注意机制来得到无需匹配的图像增强效果。 论文题目:EnlightenGAN: Deep Light Enhancement Without P…...
内存函数和动态内存管理
目录 一、memcpy库函数介绍 1. memcpy的使用 2. memcpy的模拟 二、memmove库函数介绍 1. memmove的使用 2. memmove的模拟 三、memset库函数介绍 四、memcmp库函数介绍 五、动态内存中malloc和free 1. malloc 2. free 六、动态内存中calloc和realloc 1. calloc 2. realloc 七、…...
计算机网络 - 在浏览器中输入 URL 地址到显示主页的过程?
第一步,浏览器通过 DNS 来解析 URL,得到相应的 ip 地址(到哪里找) 和 方法(做什么) 第二步,浏览器于服务器建立 TCP 三次握手连接 第三步,建立好连接后,浏览器会组装 HTTP 请求报文…...
Android Studio 常见报错
错误提示: Your build is currently configured to use incompatible Java 21.0.3 and Gradle 6.7.1. Cannot sync the project. 原因: Java JDK和gradle 版本不匹配 两个角度修改: 1.修改gradle 版本 2.修改JDK版本 Gradle 下载 https:…...
RT-DETR源码学习bug记录
事情是这样的,我最近想学习RT-DETR的源码,那就开始吧! 1. 找到官网,找到pytorch版本。 https://github.com/lyuwenyu/RT-DETR/tree/main 2.只想下载一个子目录,方法: https://download-directory.githu…...
数据仓库分层架构解析:从理论到实战的完整指南
数据仓库分层是构建高效数据体系的核心方法论。本文系统阐述ODS、DWD、DWS、ADS四层架构的设计原理,结合电商用户行为分析场景,详解各层功能及协作流程,并给出分层设计的原则与避坑指南,帮助读者掌握分层架构的落地方法。 一、为什…...
基于ubuntu24.10安装NACOS2.5.1的简介
基于ubuntu24.10安装NACOS2.5.1的简介 官方网站地址: https://nacos.io 可访问nacos站点 https://nacos.io/zh-cn/ 2025年04月记录发布 V2.5.1 版本 一、环境预准备 64 bit JDK 1.8; sudo apt update sudo apt install openjdk-8-jdk sudo apt upda…...
【Triton 教程】triton_language.full
Triton 是一种用于并行编程的语言和编译器。它旨在提供一个基于 Python 的编程环境,以高效编写自定义 DNN 计算内核,并能够在现代 GPU 硬件上以最大吞吐量运行。 更多 Triton 中文文档可访问 →https://triton.hyper.ai/ triton.language.full(shape, …...
MARA/MARC表 PSTAT字段
最近要开发一个维护物料视图的功能。其中PSTAT字段是来记录已经维护的视图的。这里记录一下视图和其对应的字母。 MARA还有个VPSTA(完整状态)字段,不过在我试的时候每次PSTAT出现一个它就增加一个,不知道具体是为什么。 最近一直…...
目标检测中的混淆矩阵
一直很疑惑YOLO的这个目标检测 混淆矩阵 🎯 假设任务:检测三种动物(猫、狗、羊) 我们使用一个目标检测模型对图像进行了预测,并收集了如下结果: ✅ 模型预测结果(带类别和框) vs 🟩真实框: 编号真实类别是否被检测到IOU是否合格预测类别备注1猫是✅猫✔️ 正确(…...
前端如何构建跨平台可复用的业务逻辑层(Web、App、小程序)
目录 第一章:跨平台开发的现状与技术选型分析 跨平台技术生态的全景概览 跨平台开发中业务逻辑层的共性需求 不同技术栈对业务逻辑复用的支持程度比较 技术选型中的权衡与思考 第二章:业务逻辑层的核心设计原则与架构理念 设计原则:构建高效业务逻辑层的基础 架构理念…...
day1-小白学习JAVA---JDK安装和环境变量配置(mac版)
JDK安装和环境变量配置 我的电脑系统一、下载JDK1、oracle官网下载适合的JDK安装包,选择Mac OS对应的版本。 二、安装三、配置环境变量1、终端输入/usr/libexec/java_home -V查询所在的路径,复制备用2、输入ls -a3、检查文件目录中是否有.bash_profile文…...
使用VHD虚拟磁盘安装双系统,避免磁盘分区
前言 很多时候,我们对现在的操作系统不满意,就想要自己安装一个双系统 但是安装双系统又涉及到硬盘分区,非常复杂,容易造成数据问题 虚拟机的话有经常用的不爽,这里其实有一个介于虚拟机和双系统之间的解决方法,就是使用虚拟硬盘文件安装系统. 相当于系统在机上…...
数据结构之稀疏矩阵与三元组表示法
稀疏矩阵的概念 在实际应用中,我们经常会遇到一些矩阵,其中大部分元素都是零,只有少量的非零元素。这种矩阵被称为稀疏矩阵。例如,在图像处理、网络分析等领域,稀疏矩阵经常出现。如果使用传统的二维数组来存储稀疏矩…...
微前端框架QianKun
以下是关于 QianKun微前端框架 的系统知识梳理,涵盖核心概念、核心功能、应用间通信、性能优化等内容: 一、QianKun基础概念与核心功能 微前端概念 定义:将单体前端应用拆分为多个独立开发、部署的子应用,通过主应用统一集成。优势:技术栈无关、独立部署、团队自治、增量…...
记录学习的第二十九天
还是力扣每日一题。 本来想着像昨天一样两个循环搞定的,就下面👇🏻 不过,结果肯定是超时啦,中等题是吧。 正确答案是上面的。 之后就做了ls题单第一部分,首先是定长滑窗问题 这种题都是有套路的࿰…...
C语言复习笔记--字符函数和字符串函数(上)
在编程的过程中,我们经常要处理字符和字符串,为了⽅便操作字符和字符串,C语⾔标准库中提供了 ⼀系列库函数,接下来我们就学习⼀下这些函数。 首先来看下字符函数. 字符分类函数 C语⾔中有⼀系列的函数是专⻔做字符分类的…...
SQL:聚合函数(Aggregate Functions)
目录 第一性原理出发思考 ——我们为什么需要聚合函数? 什么是聚合函数? 常见聚合函数 实例讲解 🔸 1. COUNT() —— 计数 🔸 2. MAX() / MIN() —— 最大 / 最小值 🔸 3. SUM() —— 求和 🔸 4. …...
Linux工具学习之【gcc/g++】
📘前言 书接上文,我们已经学习了 Linux 中的编辑器 vim 的相关使用方法,现在已经能直接在 Linux 中编写C/C代码,有了代码之后就要尝试去编译并运行它,此时就可以学习一下 Linux 中的编译器 gcc/g 了,我们一…...
5.0.2 颜色16进制格式含义 控件template中path的使用
本例要实现的目标如下: 1.右上角的按钮是X的形式(使用path用两根直线绘制) 2.鼠标移动上去以及鼠标点击背景色都变化。(使用不同透明度的白色来区分表示) 一、关于颜色的表示 在C# WPF和WinForms中,Background 属性用于设置控件的背景颜色,可以使用16进制(HEX)格式来表…...
【sharding-jdbc配置以及例子】
一、一个数据库不同的表(分表) (1)POM <dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId></dependency><dependency><groupId…...
OJ笔试强训_1至24天
OJ笔试强训 Day01 [NOIP2010]数字统计_牛客题霸_牛客网 点击消除_牛客题霸_牛客网 两个数组的交集_牛客题霸_牛客网 Day02 牛牛的快递_牛客题霸_牛客网 最小花费爬楼梯_牛客题霸_牛客网 数组中两个字符串的最小距离__牛客网 Day03 简写单词_牛客题霸_牛客网 dd爱框框_…...
多态:面向对象编程的重要特性
摘要:本文全面阐述了面向对象编程中多态这一关键特性,从多态的形式、使用场景、定义及前提条件出发,深入分析其运行特点、弊端,详细介绍引用类型转换相关知识,并通过综合练习强化对多态的理解与应用,为深入…...
使用 Vue 开发登录页面的完整指南
一、项目搭建与基础配置 环境准备 使用 Vue CLI 或 Vite 创建项目,推荐组合:Vue3 Element Plus Vue Router npm create vuelatest npm install element-plus element-plus/icons-vue vue-router 全局配置(main.js) import { c…...
【Pandas】pandas DataFrame isin
Pandas2.2 DataFrame Indexing, iteration 方法描述DataFrame.head([n])用于返回 DataFrame 的前几行DataFrame.at快速访问和修改 DataFrame 中单个值的方法DataFrame.iat快速访问和修改 DataFrame 中单个值的方法DataFrame.loc用于基于标签(行标签和列标签&#…...
Linux 网络接口 /sys/class/net/eth0 文件详解
以下是对 /sys/class/net/eth0 目录下每个文件或目录的详细讲解。这些文件是 Linux 系统中 sysfs 文件系统的一部分,提供了与网络接口(这里是 eth0)相关的配置和状态信息。每个文件或目录的内容反映了网络接口的特定属性或状态,通…...
java+postgresql+swagger-多表关联insert操作(九)
入参为json,然后根据需要对多张表进行操作: 入参格式: {"username": "车主01","usertel": "11111111111","useridtype": "2","useridcard": null,"proname&qu…...
Jsp技术入门指南【六】jsp脚本原理及隐式对象
Jsp技术入门指南【六】jsp脚本原理及隐式对象 前言一、JSP 脚本元素1.1 声明1.2 表达式1.3 脚本标签 二、JSP 的隐式对象是什么三、隐式对象详解outrequestsessionapplicationconfigexception 前言 在之前的博客中,我们已经介绍了JSP的环境搭建、编译文件查找以及生…...
邮件自动回复助手(Rasa/SMTP)实现教程
在现代办公场景中,处理大量邮件是一项既耗时又容易出错的任务。为了提升工作效率,我们可以利用自然语言处理(NLP)和邮件传输协议(SMTP)技术,构建一个智能的邮件自动回复助手。本文将详细介绍如何…...
【vLLM 学习】Aqlm 示例
vLLM 是一款专为大语言模型推理加速而设计的框架,实现了 KV 缓存内存几乎零浪费,解决了内存管理瓶颈问题。 更多 vLLM 中文文档及教程可访问 →https://vllm.hyper.ai/ 源代码:vllm-project/vllm from vllm import LLM, SamplingParams fr…...
《数据结构之美--链表oj练习》
链表oj题分享 1. 移除链表元素 题目: 思路分析: 根据题目描述,可以看出该题是要将满足条件的链表元素删除,并且返回新的头结点. 首先我们想到的肯定是直接遍历该链表然后对满足条件的元素进行删除,但删除某个元素时…...
杂记-LeetCode中部分题思路详解与笔记-HOT100篇-其四
那今天我们就把Hot100的所有题都完结了吧,Hot100作为大多数人笔试题的入门之选,可以说是非常的经典了,但是俗话说得好,书读百遍,其意自现,我不支持反复地只刷部分算法题,但是我支持周期性地刷刷…...
SpringBoot私人西服系统开发与设计
概述 基于SpringBoot的私人西服系统项目,是一个实用的服装管理系统。该系统包含了西服选择、面料选择、预约管理等核心功能。 主要内容 1. 管理员功能模块 用户管理:管理注册用户信息服装款式管理:管理西服款式信息面料类别管理ÿ…...
2.2/Q2,Charls最新文章解读
文章题目:Association of uric acid to high-density lipoprotein cholesterol ratio with the presence or absence of hypertensive kidney function: results from the China Health and Retirement Longitudinal Study (CHARLS) DOI:10.1186/s12882-…...
云端免费训练 AI 大模型推荐(适用于个人学习)
学习 AI 大模型训练(如LLM、扩散模型等),云端服务器是必不可少的,因为大模型对算力(GPU/TPU)和内存要求极高。以下是 适合不同学习阶段 的云端服务器推荐,涵盖 免费、低成本、高性能 选项&#…...
《操作系统真象还原》第九章(2)——线程
《操作系统真象还原》第九章(2)——线程 文章目录 《操作系统真象还原》第九章(2)——线程前言多线程调度简单优先级调度的基础任务调度器和任务切换注册时钟中断处理函数实现调度器schedule实现任务切换函数switch_to启用线程调度…...
Windows程序包管理器WinGet实战
概述 WinGet,Windows Package Manager,Windows软件包管理器,开源在GitHub,GitHub Releases可下载,官方文档。 WinGet由一个命令行工具和一组用于在Windows 10/11等版本上安装应用的服务组成,可帮助用户快…...
【特殊场景应对1】视觉设计:信息密度与美学的博弈——让简历在HR视网膜上蹦迪的科学指南
写在最前 作为一个中古程序猿,我有很多自己想做的事情,比如埋头苦干手搓一个低代码数据库设计平台(目前只针对写java的朋友),比如很喜欢帮身边的朋友看看简历,讲讲面试技巧,毕竟工作这么多年,也做到过高管,有很多面人经历,意见还算有用,大家基本都能拿到想要的offe…...
番外篇 | SEAM-YOLO:引入SEAM系列注意力机制,提升遮挡小目标的检测性能
前言:Hello大家好,我是小哥谈。SEAM(Squeeze-and-Excitation Attention Module)系列注意力机制是一种高效的特征增强方法,特别适合处理遮挡和小目标检测问题。该机制通过建模通道间关系来自适应地重新校准通道特征响应。在遮挡小目标检测中的应用优势包括:1)通道注意力增强…...
Top100(26-30)
二叉树的中序遍历 给定一个二叉树的根节点 root ,返回 它的 中序 遍历 。 示例 1: 输入:root [1,null,2,3] 输出:[1,3,2] 示例 2: 输入:root [] 输出:[] 示例 3: 输入&#x…...