当前位置: 首页 > news >正文

工业相机与镜头参数及选型

文章目录

  • 1、相机成像系统模型
    • 1.1 视场
    • 1.2 成像简化模型
  • 2、工业相机参数
    • 2.1 分辨率
    • 2.2 靶面尺寸
    • 2.3 像元尺寸
    • 2.4 帧率/行频
    • 2.5 像素深度
    • 2.6 动态范围
    • 2.7 信噪比
    • 2.8 曝光时间
    • 2.9 相机接口
  • 3、工业镜头参数
    • 3.1 焦距
    • 3.2 光圈
    • 3.3 景深
    • 3.4 镜头分辨率
    • 3.5 工作距离(Workingdistance,WD)
    • 3.6 视野范围(Field of View,FOV)
    • 3.7 光学放大倍数(Magnification,b)
  • 4、工业相机与镜头选型
    • 4.1 相机分辨率的选择
    • 4.2 相机与镜头分辨率的选择
    • 4.3 镜头其他参数的选择
    • 4.4 相机其他参数的选择
  • 5、线激光器选型

1、相机成像系统模型

1.1 视场

视场(Field of View,FOV)指成像系统中图像传感器可以监测到的最大区域。在机器视觉系统设计时,考虑到一般都会使被检测目标尽量填满整视场,因此常用视场大小代替目标的最大长度Lmax来计算视觉系统的像素分辨率。
在这里插入图片描述
如果横纵方向上视场大小为[FOVh,FOVv],检测目标的最小特征的大小为[Ih,lv],则图像传感器应具有的最小像素分辨率为:
R m i n = [ F O V h l h × P m i n , F O V v l v × P m i n ] R_{min}=[\frac{FOV_h}{l_h}\times P_{min},\frac{FOV_v}{l_v}\times P_{min} ] Rmin=[lhFOVh×Pmin,lvFOVv×Pmin]

  • P m i n : 最小特征的像素数 P_{min}:最小特征的像素数 Pmin:最小特征的像素数
    成像系统视场的大小可以通过研究其成像规律得知。目前,机器视觉系统常用使用配备各种镜头系统的工业CCD/CMOS相机作为成像系统,透镜成像示意图如下所示:
    在这里插入图片描述
    镜头系统一般使用透镜系统,其成像遵循高斯成像公式:

1 f = 1 u + 1 v \frac{1}{f}=\frac{1}{u}+\frac{1}{v} f1=u1+v1

  • f为焦距
  • u为物距
  • v为像距(实正虚负)

通常将像距与物距的比值定义为透镜的放大率M:
M = u v M=\frac{u}{v} M=vu

1.2 成像简化模型

由于对机器视觉成像系统来说,相机镜头到所检测目标的距离(称为工作距离,相当于物距)相对于相机焦距可近似认为是无穷远。若将其带入高斯成像公式,可得出此时相机像距近似等于其焦距,也就是说相机成像在焦平面上。据此,可以将镜头系统抽象为类似小孔成像的简化模型。
小孔成像简化模型
根据该简化模型,可以得出机器视觉系统图像传感器尺寸S(传感器平面某个方向上的长度)、视场FOV、工作距离WD及镜头焦距f之间的约束关系:
S F O V = f W D \frac{S}{FOV}=\frac{f}{WD} FOVS=WDf

2、工业相机参数

2.1 分辨率

分辨率是相机最基本的参数,由相机所采用的芯片分辨率决定,在采集图像时,相机的分辨率对检测精度有很大的影响,在对同样大的视场(景物范围)成像时,分辨率越高,对细节的展示越明显。
常用的工业面阵相机分辨率有500万、1200万、6500万等。对于线阵相机而言,分辨率就是传感器水平方向上的像素数,常见有2K、4K、8K、16K等。

2.2 靶面尺寸

英寸和毫米的换算关系是:1英寸(inch) = 25.4 mm。
但是对于一款CMOS成像芯片,虽然标称它的对角线尺寸为1英寸,实际测量只有大约16mm,和25.4mm相差甚远。这是为什么呢?
这实际上是一个历史遗留问题.最早的电视摄像机的核心元件是真空摄像管。那时候的真空摄像管看起来都差不多,它们被封装在圆柱形的玻璃外壳中,最常见的玻璃圆柱的外径尺寸就是1英寸,还有2英寸、3英寸等等。针对这种老式显像管,它真正能够显示的圆面直径只有16mm,远没有1 英寸这么大(要考虑到外壳封装占据的空间)。当时为了相互交流沟通的方便,一般都是以显像管的外径的数值来指代其成像范围,即便后来出现了CCD和CMOS成像芯片,但是这种度量方式却被一直继承了下来。
真空摄像管

所以,在工业相机领域,成像元件中提到的“英寸”这个单位,已经不能按工业标准的1英寸=25.4mm来计算了,而要按 1英寸=16mm 来计算。它严格遵守了Optical Format规范,中文译名为光学格式,其数值称为OF值,单位为英寸。

另外需要说明的是,并不是所有的CMOS芯片都是按照 1英寸=16mm 来计算长度的,这要看CMOS对角线长度来定:只有CMOS对角线长度≥8mm时,才会使用16mm规范,此时1英寸=16mm。比如1/2 的芯片,对应对角线真实尺寸大约是8mm。对于对角线长度小于8mm的CMOS,使用18mm规范,此时1英寸=18mm,比如1/2.55英寸的芯片,其对角线的真实尺寸大约是7mm。

下图为不同画幅的CMOS(或者CCD)的真实尺寸对比。一般来说,如果CMOS尺寸大于2英寸,就不再使用英寸来划分,而是给它取一个特定的名称,比如APS画幅,全画幅,中画幅,大画幅等等。

在这里插入图片描述
在这里插入图片描述

2.3 像元尺寸

像元即影像单元,是组成数字化影像的最小单元。

  • 像元尺寸和像元数(分辨率)共同决定了相机靶面的大小,通常工业相机像元尺寸为2μm~14μm。

像元尺寸从某种程度上反映了芯片的对光的响应能力,一般情况下,像元尺寸越大,能够接收到的光子数量越多,在同样的光照条件和曝光时间内产生的电荷数量越多。
在这里插入图片描述

2.4 帧率/行频

工业相机的最大帧率/行频表示单位时间内相机采集图像的速率。

  • 通常帧率是相对于面阵工业相机来说的,单位是fps,如181fps,即相机每秒内最多可采集181帧图像。
  • 行频是相对于线阵工业相机来说的,单位是kHz,如80kHz,即相机每秒内最多可采集80000行图像数据。

2.5 像素深度

像素深度是指每位像素数据的位数,通常用多少比特位表示。一般,每个像素的比特位数多,表达图像细节的能力强,这个像素的灰阶值更加丰富、分得更细,像素的灰阶深度就更深,但同时数据量也越大,影响系统的图像处理速度,因此也需慎重选择。

2.6 动态范围

动态范围是用来描述每个像素能够分辨出的灰度等级,宽动态范围能够使场景中亮场和暗场部分的细节同时被清晰的记录下来。
动态范围值越大,意味着工业相机可以拍摄物体明暗程度的范围越宽。

2.7 信噪比

工业相机的噪声是指成像过程中不希望被采集到的,实际成像目标之外的信号。
根据欧洲机器视觉协会(EMVA)的EMVA1288标准中定义的相机中的噪声,总体上分为两类:一类是由有效信号带来的散粒噪声,这种噪声对任何相机都是相同的,不可避免;另一类是相机本身固有的与信号无关的噪声,它是由于图像传感器读出电路、相机信号处理与放大电路等带来的噪声,每台相机的固有噪声都不一样。
相机的信噪比定义为图像中信号与噪声的比值(有效信号平均灰度值与噪声均方根的比值),其中信号可以由光强乘以量子效率乘以积分时间来计算,而噪声则指成像过程中所有部分所产生噪声的总和;信噪比越大,则表示混在信号里的杂波越少,图像质量越高,画面越干净,看不到噪波干扰(表现为“颗粒”和“雪花”);若信噪比越小,则画面上可能呈现较多的“颗粒”和“雪花”,影响图像画面质量。

2.8 曝光时间

曝光时间是为了将光投射到照相感光材料的感光面上,快门所要打开的时间;视感光材料的感光度和对感光面上的照度而定;曝光时间长,进光量就越大,适合光线条件较差的情况;曝光时间短则适合光线比较好的情况。

2.9 相机接口

工业相机通常有三个基础的接口,电源接口、数据接口与镜头接口。

  1. 电源接口:顾名思义,用以相机电源输入接口。
  2. 数据接口:按照接口标准不同,工业相机常用的数据接口有GigE、Camera Link、USB3.0、CoaXPress等类型。
  3. 镜头接口:工业相机镜头接口种类很多,常用的一般有C接口、CS接口、F接口、M42接口、M72接口等。
    C接口和CS接口是工业相机与镜头联接最常见的国际标准接口,为1英寸-32UN英制螺纹连接口,C型接口和CS型接口的螺纹连接是一样的,区别在于C型接口的后截距为17.5mm,CS型接口的后截距为12.5mm。所以CS型接口的工业相机可以和C口及CS口的镜头连接使用,只是使用C口镜头时需要加一个5mm的接圈;C型接口的工业相机不能用CS口的镜头。
    在这里插入图片描述

3、工业镜头参数

3.1 焦距

焦距就是从镜头的中心点到胶平面(胶片或CCD)上所形成的清晰影像之间的距离,注意区分相机的焦距与单片凸透镜的焦距是两个概念,因为相机上安装的镜头是多片薄的凸透镜组成,单片凸透镜的焦距是平行光线汇聚到一点,这点到凸透镜中心的距离。焦距的大小决定着视角大小,焦距数值小,视角大,所观察的范围也大;焦距数值大,视角小,观察范围小。
标准镜头的视角约50度左右,这是人单眼在头和眼不转动的情况下所能看到的视角,从标准镜头中观察的感觉与我们平时所见的景物基本相同。
在这里插入图片描述

  • 焦距的计算方法

f = S × W D F O V f = \frac{S \times WD}{FOV} f=FOVS×WD
s:机器视觉系统图像传感器尺寸(传感器平面某个方向上的长度)
FOV:视场
WD:工作距离
f:镜头焦距

3.2 光圈

光圈是一个用来控制光线通过镜头,进入机身内感光面光量的装置。它通常是在镜头内,通过面积可变的孔径光栅来达到控制镜头通光量。
除了调整进光量之外,光圈还有一个重要的作用:调整画面的景深。用F表示,以镜头焦距f和通光孔径D的比值来衡量,每个镜头上都标有最大F值,例如:8mm/F1.4代表最大孔径D为5.7mm(8/1.4),F值越小,光圈越大,F值越大,光圈越小。最佳光圈一般在f/4-f/8。

3.3 景深

景深是指在被摄物体聚焦清楚后,在物体前后一定距离内,其影像仍然清晰的范围。景深随镜头的光圈值、焦距、拍摄距离而变化,光圈越大,景深越小(浅),光圈越小,景深越大(深)。焦距越长,景深越小,焦距越短,景深越大。距离拍摄物体越近时,景深越小,拍摄距离约远,景深越大。
在这里插入图片描述

  • 景深的计算方法
    前景深 Δ L 1 = F δ L 2 f 2 + F δ L 后景深 Δ L 2 = F δ L 2 f 2 − F δ L 景深 Δ L = Δ L 1 + Δ L 2 = 2 f 2 F δ L 2 f 4 − F 2 δ 2 L 2 F : 镜头的拍摄光圈值 δ : 容许弥散圆直径 L : 对焦距离 f : 焦距 \begin{array} {l} 前景深 \Delta L1 = \frac{F \delta L^2}{f^2 + F \delta L} \\ \\ 后景深 \Delta L2 = \frac{F \delta L^2}{f^2 - F \delta L} \\ \\ 景深 \Delta L = \Delta L1 + \Delta L2 = \frac{2f^2F \delta L^2}{f^4 - F^2 \delta^2 L^2} \\ \\ F:镜头的拍摄光圈值 \\ \delta : 容许弥散圆直径 \\ L:对焦距离 \\ f:焦距 \\ \end{array} 前景深ΔL1=f2+FδLFδL2后景深ΔL2=f2FδLFδL2景深ΔL=ΔL1+ΔL2=f4F2δ2L22f2FδL2F:镜头的拍摄光圈值δ:容许弥散圆直径L:对焦距离f:焦距

3.4 镜头分辨率

分辨率代表镜头记录物体细节的能力,是指在成像平面上 1 毫米间距内能分辨开的黑白相间的线条对数,单位是“线对/毫米”( lp/mm,line-pairs/mm ),线对是指黑白相间的两条线,即两个像素点,分辨率越高的成像越清晰。我们常说的显示分辨率是屏幕图像的精密度,指图形所能显示像素有多少。
由于像素和像素之间的间距形成了离散采样。采样定律也叫Shannon采样定律,告诉我们对于频率为f的模拟信号,为了不失真的恢复它,我们至少要用2f的频率来采样。两个相机感光元才能对应黑和白一个线对。
在这里插入图片描述

  • 像元尺寸
    最小能分辨的尺寸是线对数的2倍倒数。最小能分辨的尺寸即像元尺寸,指单个像素的大小或两个像素中心点之间的距离,单位mm或um等,不同规格相机规定单位不同。
    例如:镜头为5百万像素、靶面尺寸为1/1.8”,分辨率为200 lp/mm,最小能分辨的尺寸是 1/(200*2)=0.0025mm,即像元尺寸为2.5um。

3.5 工作距离(Workingdistance,WD)

镜头第一个工作面到被测物体距离。

3.6 视野范围(Field of View,FOV)

相机实际拍摄到的区域尺寸,视场角分物方视场角和像方视场角。一般光学设备的使用者关心的是物方视场角。对于大多数光学仪器,视场角的度量都是以成像物的直径作为视场角计算的。如:望远镜、显微镜等。而对于照相机、摄像机类的光学设备,由于其感光面是矩形的,因此常以矩形感光面对角线的成像物直径计算视场角。也有以矩形的长边尺寸计算视场角的。
在这里插入图片描述
视场角与焦距的关系:一般情况下,视场角越大,焦距就越短。

3.7 光学放大倍数(Magnification,b)

CCD/FOV,即芯片尺寸除以视野范围。

4、工业相机与镜头选型

数字图像是对成像系统输出的信号进行数字化后的结果,成像系统反映真实场景的性能和质量直接决定整个机器视觉系统的性能。
影响机器视觉成像系统成像质量的因素主要包括:光源(Illumination)、系统分辨率(System Resolution)、像素分辨率(Pixel Resolution)、对比度(Contrast)、景深(Depth of Field,DOF)、投影误差(Perspective Error)和镜头畸变(Lens Distortion)。
而这些因素(参数)却直接或间接地由硬件选型和安装方式决定。如果事先既未确定相机又未确定镜头,则需要先了解项目工作环境对相机安装(工作距离)、要检测的最大范围(视场)、最小特征的尺寸和代表它的像素数的要求,然后根据这些条件来计算应使用何种镜头或相机。
在这里插入图片描述
无论何种情况,都是基于成像系统简化模型的参数约束关系和项目需求获取最优搭配的过程。

4.1 相机分辨率的选择

分辨率的选择,主要根据待测物体的尺寸估算出视野大小,再结合精度要求,最后确定需要的工业相机分辨率。
例如:若物体尺寸为50mm,则视野可以估算为50×1.2=60mm,若单个像素的精度要求为0.02mm,则分辨率为50×1.2/0.02=3K

注意:选择相机不一定是分辨率越高就越好,分辨率高带来的图像数据量就大,后期的算法处理就越复杂。

4.2 相机与镜头分辨率的选择

经透镜成的光学图像,本身是一个拥有无穷多个点的模拟信号。但在图像接收器(CCD或CMOS)接收过程中,由于像素和像素之间的间距形成了离散采样。采样定律也叫Shannon采样定律,告诉我们对于频率为f的模拟信号,为了不失真的恢复它,我们至少要用2f的频率来采样。
所以相机分辨率需要等于镜头分辨率的两倍,才能呈现完好的成像质量,如果大于镜头分辨率的两倍,则造成了相机性能的过剩,反之造成了镜头性能的过剩。然而在实际使用中,由于景深的存在,为了使镜头偏离对准面仍然能够成像清晰,因此,在选择镜头时,通常要求镜头分辨率要略高于像元分辨率,这样才能使系统的分辨率达到传感器所限制的最高分辨率。
所以要用相机分辨率等于镜头分辨率的两倍实际上是要求相机和镜头的像元尺寸相等,而不是像素相等。例如500万像素的相机不一定需要配备500万像素的镜头,而是需要计算像元尺寸,然后进行比较。
一般情况下需要确定工业相机和镜头的分辨率时,镜头的靶面尺寸与相机的靶面尺寸没有完全匹配,此时计算镜头的像元尺寸时应该使用相机的靶面尺寸进行计算从而保证相机的分辨率是镜头分辨率的两倍。
例如1/1.8”靶面C 口5 百万像素工业镜头的镜头分辨率为:200lp/mm。若用于靶面尺寸1/2.9”的工业相机,对应的像素为1987X1490,大于相机的分辨率为1440X1080,这样的工业镜头可以用于工业相机,只是造成镜头的浪费。

4.3 镜头其他参数的选择

影响镜头成像的因素包括:焦距、最大像面、视场/视场角、渐晕、景深等方面。

  • 焦距是指无限远处目标在镜头的像方所成像位置到像方主面的距离。焦距体现了镜头的基本特性:即在不同物距上,目标的成像位置和成像大小由焦距决定。市面上常见的镜头焦距大小包括6mm、8mm、12.5mm、25mm以及50mm等。对机器视觉成像系统来说,工作距离就是成像系统中所说的物距。由于视觉成像系统模型的假定条件是工作距离相对于镜头焦距为无限远,因此一般在镜头的产品参数中都会说明其最小工作距离。当相机在小于该最小工作距离的环境下工作时,就会出现图像失真,影响机器视觉系统的可靠性。
  • 最大像面是指镜头能支持的最大清晰成像范围(常用可观测范围的直径表示),超出这个范围所成的像对比度会降低而且会变得模糊不清。最大像面是由镜头本身的特性决定的,它的大小也限定了镜头可支持的视场的大小。
  • 镜头的视场就是镜头最大像面所对应的观测区域。视场角是视场的另一种表述方法,类似人眼“视角"的意义。视场角等于最大像面对应的目标张角。通常,在远距离成像系统中,例如望远镜、航拍镜头等场合,镜头的成像范围均用视场角来衡量。而近距离成像中,常用实际物面的直径(即幅面)来表示。
    在这里插入图片描述
    t a n ω = S / 2 f S 为相机传感器在二维平面上某个维度的大小; f : 焦距 2 ω : 视场角 tan \omega = \frac{S/2}{f} \\ \\ \begin{aligned} &S为相机传感器在二维平面上某个维度的大小;\\ &f:焦距 \\ &2\omega :视场角 \end{aligned} tanω=fS/2S为相机传感器在二维平面上某个维度的大小;f:焦距2ω:视场角

由于相机传感器尺寸固定,因此视场角也可以被看作焦距的另一种表达。因此在生活中,人们常按照镜头的视场角对其进行分类,如望远镜(6-12°)、远距摄像镜头(120-46°) .标准镜头(46-65°)、广角镜头(650~100°)及超广角镜头( >100°)等。
一般来说,镜头的失真会随着焦距的减小(或视场角的增大)而增大,因而在构建机器视觉系统(特别是精确测量系统)时,一般都不会选择焦距小于8mm或视场角很大的镜头。
鉴于镜头能清楚成像的范围受到最大像面的限制,因此在为相机选配镜头时,要特别注意相机传感器与镜头可支持最大传感器之间的关系。
一般来说,必须确保所选镜头可支持的最大传感器尺寸大于或等于相机的传感器尺寸。这样做的另一个主要原因是为了避免渐晕(Vignetting)现象的发生。
在这里插入图片描述

  • 普通镜头和远心镜头
    普通镜头与人眼一样,观测物体时都存在"近大远小”的现象,如下图 (a)所示。也就是说,虽然物体在景深范围内可以清晰成像,但是其成像却随着物距增大而缩小。如果被测目标不在同一物面上(如有厚度的物体),则会导致图像中的物体变形。另一方面,相机传感器的感光面通常并不容易被精确调整到与镜头的像平面重合(调焦不准),由此也会产生误差。为此,人们设计了远心镜头。
    远心镜头(telecentric lens)有较大的景深,且可以保证景深范围内任何物距都有一致的图像放大率。多数机器视觉在测量、缺陷检测或者定位等应用上,对物体成像的放大倍率没有严格要求,一般只要选用畸变较小的镜头,就可以满足要求。但是,当机器视觉系统需要检测三维目标(或检测目标不完全在同一物面上)时,就需要使用远心镜头。

4.4 相机其他参数的选择

抛开镜头差别,拍照画质与传感器大小成正比。

  • CCD/CMOS
    CMOS图像传感器的光电转换原理与CCD图像传感器相同,二者的主要差异在于电荷的转移方式上。CCD图像传感器中的电荷会被逐行转移到水平移位寄存器,经放大器放大后输出。由于电荷是从寄存器中逐位连续输出的,因此放大后输出的信号为模拟信号。在CMOS传感器中,每个光敏元的电荷都会立即被与之邻接的一个放大器放大,再以类似内存寻址的方式输出,如下图所示:
    在这里插入图片描述
    因此CMOS芯片输出的是离散的数字信号,之所以采用两种不同的电荷传递方式,是因为CCD是在半导体单晶硅材料上集成的,而CMOS则是在金属氧化物半导体材料上集成的,工艺上的不同使得CCD能保证电荷在转移时不会失真,而CMOS则会使电荷在传送距离较长时产生噪声,因此使用CMOS时,必须先对信号放大再整合输出。

5、线激光器选型

选择机器视觉用线激光器需要考虑的因素有:

  1. 颜色/波段
  2. 功率要求
  3. 调制模式要求
  4. 聚焦位置(F)
  5. 聚焦位置下的激光线长度(L)
  6. 最远工作距离(D2)
  7. 最近工作距离(D1)
  8. 激光图案
  9. 是否需要激光亮度可调
  10. 需要在整个景深范围内光线的粗细一致性好还是需要,在某处最细就好

相关文章:

工业相机与镜头参数及选型

文章目录 1、相机成像系统模型1.1 视场1.2 成像简化模型 2、工业相机参数2.1 分辨率2.2 靶面尺寸2.3 像元尺寸2.4 帧率/行频2.5 像素深度2.6 动态范围2.7 信噪比2.8 曝光时间2.9 相机接口 3、工业镜头参数3.1 焦距3.2 光圈3.3 景深3.4 镜头分辨率3.5 工作距离(Worki…...

VSCode使用Makefile Tools插件开发C/C++程序

提起Makefile,可能有人会觉得它已经过时了,毕竟现在有比它更好的工具,比如CMake,XMake,Meson等等,但是在Linux下很多C/C源码都是直接或者间接使用Makefile文件来编译项目的,可以说Makefile是基石…...

用C语言验证“三门定理”

#include <stdio.h> #include <stdbool.h> #include <stdlib.h> #include <time.h>// 一个源自博弈论的数学游戏问题&#xff1a; // 参赛者会看见三扇门&#xff0c; // 其中一扇门的里面有一辆汽车&#xff0c; // 选中里面是汽车的那扇门&#xff0…...

计算机网络-分层结构,协议,接口,服务

文章目录 总览为什么要分层怎样分层正式认识分层概念小结 总览 为什么要分层 发送文件前要做的准备工作很多 把这个准备工作分层小问题解决&#xff0c;也就分层解决 怎样分层 每层相互独立&#xff0c;每层做的工作不同 界面自然清晰&#xff0c;层与层之间的接口能够体现…...

前端开发 2: CSS

在前端开发中&#xff0c;CSS&#xff08;层叠样式表&#xff09;是一种用于描述网页样式的语言。它控制着网页的布局、颜色、字体等外观效果。在本篇博客中&#xff0c;我将为你介绍 CSS 的基础知识和常用技巧&#xff0c;帮助你更好地掌握前端开发中的样式设计。 CSS 基础知…...

嵌入式-Stm32-江科大基于标准库的GPIO4个小实验

文章目录 一 、硬件介绍二 、实验&#xff1a;LED闪烁、LED流水灯、蜂鸣器提示2.1 需求1&#xff1a;面包板上的LED以1s为周期进行闪烁。亮0.5s,灭0.5s.....2.2 需求2: 8个LED实现流水灯2.3 需求3&#xff1a;蜂鸣器不断地发出滴滴、滴滴.....的提示音。蜂鸣器低电平触发。 三、…...

HackTheBox - Medium - Linux - Noter

Noter Noter 是一种中型 Linux 机器&#xff0c;其特点是利用了 Python Flask 应用程序&#xff0c;该应用程序使用易受远程代码执行影响的“节点”模块。由于“MySQL”守护进程以用户“root”身份运行&#xff0c;因此可以通过利用“MySQL”的用户定义函数来利用它来获得RCE并…...

Uniapp多选Popup(弹出层)

uniapp中多选组件很少&#xff0c;故个人简单开发了一个&#xff0c;可简单使用&#xff0c;也可根据个人需求稍微改进 支持的功能 单选多选&#xff08;默认&#xff09;限制选择数量默认选中禁用选项 属性说明 属性默认值说明singlefalsetrue为开启单选&#xff0c;否则为…...

什么是网络安全?网络安全概况

网络安全涉及保护我们的计算机网络、设备和数据免受未经授权的访问或破坏。 这个领域包括多种技术、过程和控制措施&#xff0c;旨在保护网络、设备和数据免受攻击、损害或未授权访问。网络安全涉及多个方面&#xff0c;包括但不限于信息安全、应用程序安全、操作系统安全等 …...

c语言小游戏之扫雷

目录 一&#xff1a;游戏设计理念及思路 二&#xff1a;初步规划的游戏界面 三&#xff1a;开始扫雷游戏的实现 注&#xff1a;1.创建三个文件&#xff0c;test.c用来测试整个游戏的运行&#xff0c;game.c用来实现扫雷游戏的主体&#xff0c;game.h用来函数声明和包含头文…...

如何本地安装Python Flask并结合内网穿透实现远程开发

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…...

在线App封装技术:HTML5的新生命

HTML5封装的魅力所在HTML5带来了丰富的多媒体功能、地理位置服务、离线存储等特性&#xff0c;使得Web应用的体验更加接近原生App。封装HTML5到App中&#xff0c;可以大大缩短开发周期&#xff0c;降低开发成本&#xff0c;并且一次编写&#xff0c;多平台运行&#xff0c;极大…...

Spring Boot 4.0:构建云原生Java应用的前沿工具

目录 前言 Spring Boot简介 Spring Boot 的新特性 1. 支持JDK 17 2. 集成云原生组件 3. 响应式编程支持 4. 更强大的安全性 5. 更简化的配置 Spring Boot 的应用场景 1. 云原生应用开发 2. 响应式应用程序 3. 安全性要求高的应用 4. JDK 17的应用 总结 作…...

Debian系统写Mysql时中文出现乱码无法定入的问题解决方案

原因是操作系统可能精简安装&#xff0c;没有GBK字符集&#xff0c;只有UTF8在转换或使用的时候有问题。 使用locale -a查看系统支持的字符集。正常的比较全的字符集的操作系统如下&#xff1a; 有问题的操作系统字符集如下&#xff1a; 解决方案&#xff1a; 步骤1&#…...

CPMS靶场练习

关键&#xff1a;找到文件上传点&#xff0c;分析对方验证的手段 首先查看前端发现没有任何上传的位置&#xff0c;找到网站的后台&#xff0c;通过弱口令admin 123456可以进入 通过查看网站内容发现只有文章列表可以进行文件上传&#xff1b;有两个图片上传点 图片验证很严格…...

CTFhub-bak文件

CTFhub-Web-信息泄露-备份文件下载-bak文件 题目信息 解题过程 看到提示说和index.php有关&#xff0c;在url后面加index.php.bak&#xff0c;跳转到http://challenge-7a4da2076cfabae6.sandbox.ctfhub.com:10800/index.php.bak网址&#xff0c;即&#xff1a; 跳转到下载页…...

本地部署轻量级web开发框架Flask并实现无公网ip远程访问开发界面

文章目录 1. 安装部署Flask2. 安装Cpolar内网穿透3. 配置Flask的web界面公网访问地址4. 公网远程访问Flask的web界面 本篇文章主要讲解如何在本地安装Flask&#xff0c;以及如何将其web界面发布到公网进行远程访问。 Flask是目前十分流行的web框架&#xff0c;采用Python编程语…...

面试题-MySQL如何定位慢查询

慢查询出现的情况就这些&#xff1a;聚合查询、多表查询、表数据量过大查询、深度分页查询。 表象&#xff1a;页面加载过慢、接口压测响应时间过长&#xff08;超过1S&#xff09;。 假如你的业务接口就是比较慢&#xff0c;你怎么知道是SQL的问题呢&#xff1f;就算是SQL的…...

【C++PCL】点云处理K-Means点云分割

目录 1.原理介绍 2.代码效果 3.源码展示 4.参数调试 5.注意事项...

代码随想录算法训练DAY25|回溯2

算法训练DAY25|回溯2 216.组合总和III 力扣题目链接 找出所有相加之和为 n 的 k 个数的组合。组合中只允许含有 1 - 9 的正整数&#xff0c;并且每种组合中不存在重复的数字。 说明&#xff1a; 所有数字都是正整数。 解集不能包含重复的组合。 示例 1: 输入: k 3, n …...

hanlp,pkuseg,jieba,cutword分词实践

总结&#xff1a;只有jieba,cutword,baidu lac成功将色盲色弱成功分对,这两个库字典应该是最全的 hanlp[持续更新中] https://github.com/hankcs/HanLP/blob/doc-zh/plugins/hanlp_demo/hanlp_demo/zh/tok_stl.ipynb import hanlp # hanlp.pretrained.tok.ALL # 语种见名称最…...

一个简单的Vue实例

Vue.js 是一个流行的 JavaScript 框架&#xff0c;用于构建交互式的网页应用。一个基本的 Vue 实例包含数据对象、模板、挂载点、方法和生命周期钩子等。 以下是一个简单的 Vue 实例示例&#xff1a; // 创建一个新的 Vue 实例 var app new Vue({el: #app, // 指定一个挂载点…...

【GoLang入门教程】Go语言几种标准库介绍(八)

ChatGPT 和文心一言哪个更好用&#xff1f; 文章目录 ChatGPT 和文心一言哪个更好用&#xff1f;强烈推荐前言几种库runtime库 ( 运行时接口)常用的函数&#xff1a;示例 sort库&#xff08;排序接口&#xff09;主要的函数和接口&#xff1a;示例 strings库(字符串转换、解析及…...

[系统安全] 五十四.恶意软件分析 (6)PE文件解析及利用Python获取样本时间戳

您可能之前看到过我写的类似文章,为什么还要重复撰写呢?只是想更好地帮助初学者了解病毒逆向分析和系统安全,更加成体系且不破坏之前的系列。因此,我重新开设了这个专栏,准备系统整理和深入学习系统安全、逆向分析和恶意代码检测,“系统安全”系列文章会更加聚焦,更加系…...

kafka入门(九):副本

副本 副本&#xff08;Replica&#xff09;&#xff0c;指的是分布式系统对数据和服务提供的一种冗余方式。 Kafka通过多副本机制实现故障自动转移&#xff0c;在Kafka集群中某个broker节点失效的情况下仍然保证服务可用。 kafka 副本之间是 一主多从的关系。 其中 leader 副…...

【5G 接口协议】N2接口协议NGAP(NG Application Protocol)介绍

博主未授权任何人或组织机构转载博主任何原创文章&#xff0c;感谢各位对原创的支持&#xff01; 博主链接 本人就职于国际知名终端厂商&#xff0c;负责modem芯片研发。 在5G早期负责终端数据业务层、核心网相关的开发工作&#xff0c;目前牵头6G算力网络技术标准研究。 博客…...

2024年甘肃省职业院校技能大赛信息安全管理与评估 样题三 模块二

竞赛需要完成三个阶段的任务&#xff0c;分别完成三个模块&#xff0c;总分共计 1000分。三个模块内容和分值分别是&#xff1a; 1.第一阶段&#xff1a;模块一 网络平台搭建与设备安全防护&#xff08;180 分钟&#xff0c;300 分&#xff09;。 2.第二阶段&#xff1a;模块二…...

Python自动化我选DrissionPage,弃用Selenium

DrissionPage 是一个基于 python 的网页自动化工具。 它既能控制浏览器&#xff0c;也能收发数据包&#xff0c;还能把两者合而为一。 可兼顾浏览器自动化的便利性和 requests 的高效率。 它功能强大&#xff0c;内置无数人性化设计和便捷功能。 它的语法简洁而优雅&#x…...

MQ 消息丢失、重复、积压问题,如何解决?

面试官在面试候选人时&#xff0c;如果发现候选人的简历中写了在项目中使用了 MQ 技术&#xff08;如 Kafka、RabbitMQ、RocketMQ&#xff09;&#xff0c;基本都会抛出一个问题&#xff1a;在使用 MQ 的时候&#xff0c;怎么确保消息 100% 不丢失&#xff1f; 这个问题在实际…...

【Linux】第三十三站:日志

文章目录 一、实现一个简单的日志1.简介2.可变参数3.错误等级4.时间5.打印每一条参数6.与前面的一些代码搭配使用 二、完整代码 一、实现一个简单的日志 1.简介 我们运行代码的时候&#xff0c;我们希望有各种各样的运行时候的一些信息。这也就是日志 它一半有日志时间&…...