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

文章目录

  • 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 相机其他参数的选择

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时,必须先对信号放大再整合输出。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/334244.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

表的增删改查 进阶(二)

🎥 个人主页:Dikz12🔥个人专栏:MySql📕格言:那些在暗处执拗生长的花,终有一日会馥郁传香欢迎大家👍点赞✍评论⭐收藏 目录 3.新增 4.查询 聚合查询 聚合函数 GROUP BY子句 HA…

【GitHub项目推荐--一键换脸】【转载】

FaceSwap 是一种利用深度学习算法来换掉图片和视频中的人脸的工具。基于 Tensorflow、Keras 和 Python,Faceswap 可以在 Windows、macOS 和 Linux 上运行。 安装了这个应用,你就能在你电脑上通过可视化交互的方式构建自己的换脸模型了。 地址&#xff…

时序分解 | Matlab实现CEEMDAN+PE自适应噪声完备集合经验模态分解+排列熵计算

时序分解 | Matlab实现CEEMDANPE自适应噪声完备集合经验模态分解排列熵计算 目录 时序分解 | Matlab实现CEEMDANPE自适应噪声完备集合经验模态分解排列熵计算效果一览基本介绍程序设计参考资料 效果一览 基本介绍 CEEMDANPE自适应噪声完备集合经验模态分解排列熵计算 运行环境m…

第六回 花和尚倒拔垂杨柳 豹子头误入白虎堂-安装服务器管理面板AMH和cyberpanel

且说鲁智深踏入菜园之时,二三十个泼皮无赖正聚集于此,他们手持果盒酒礼,脸上嬉皮笑脸,口称前来庆贺。然而,当这群人走到粪窖边缘,打头阵的张三和李四竟妄想搬动鲁智深,结果却被他轻描淡写地一脚…

element中表格组件的row-class-name和class-name属性的使用以及无效处理

1.这两个属性的使用&#xff0c;row-class-name用在el-table标签上&#xff0c;class-name用在el-table-column标签上。两个属性即可绑定类名也可绑定函数 <!-- 这里是绑定函数&#xff0c;也可以绑定类名 --> <el-table :data"tableData" selection-chang…

【C++】string的基本使用

从这篇博客开始&#xff0c;我们的C部分就进入到了STL&#xff0c;STL的出现可以说是C发展历史上非常关键的一步&#xff0c;自此C和C语言有了较为明显的差别。那么什么是STL呢&#xff1f; 后来不断的演化&#xff0c;发展成了知名的两个版本&#xff0c;一个叫做P.J.版本&am…

Liunx:线程控制

目录 创建线程&#xff1a;pthread_create(); 线程等待&#xff1a;pthread_join(); 线程退出&#xff1a;pthread_exit(); 线程取消&#xff1a;pthread_cancel() 说线程的时候说过&#xff0c;liunx没有选择单独定义线程的数据结构和适配算法&#xff0c;而是用轻量级进程…

关于java的继承

关于java的继承 我们在上一篇文章中&#xff0c;了解到了封装&#xff0c;我们本篇文章来介绍一下面向对象的第二大特点&#xff0c;继承&#xff0c;还是遵循结合现实生活中的实际情况&#xff0c;理解着去学习&#xff0c;能更好的加深印象&#x1f600;。 一、继承 继承的…

【从零开始学习Java重要知识 | 第三篇】暴打ReentrantLock底层源码

目录 前言&#xff1a; 前置知识&#xff1a; 什么是公平锁与非公平锁&#xff1f; 尝试自己构造一把锁&#xff1a; ReentrantLock源码&#xff1a; 加锁&#xff1a; 解锁&#xff1a; 总结&#xff1a; 前言&#xff1a; 在并发编程中&#xff0c;线程安全是一个重…

力扣 | 49. 字母异位词分组

这里使用HashMap Java package _49;import java.util.*;public class Problem_49_GroupAnagrams {public List<List<String>> groupAngrams(String [] strs){Map<String,List<String>> map new HashMap<>(); // int [] arr new int[]{}…

建筑能源管理系统

建筑能源管理系统是一种集成了先进的监测、控制、分析和优化技术的智能化系统&#xff0c;旨在提高建筑能源效率&#xff0c;降低能源消耗&#xff0c;减少环境污染&#xff0c;并为用户提供舒适、安全的建筑环境。通过监测建筑内的各种能源消耗情况&#xff0c;如电力、热水、…

Halcon基于形变的模板匹配

Halcon基于形变的模板匹配 形变分为两种&#xff0c;一种是基于目标局部的形变&#xff0c;另一种是由于透视关系而产生的形变。基于形变的模板匹配也是一种基于形状的匹配方法&#xff0c;但不同的是&#xff0c;其返回结果中不仅包括轻微形变的形状.形变的位置和参数&#x…

Python基础第二篇(Python基础语法)

文章目录 一、字面量二、注释三、变量四、数据类型五、数据类型转换六、标识符七、运算符八、字符串扩展内容&#xff08;1&#xff09;字符串定义&#xff08;2&#xff09;字符串拼接、&#xff08;3&#xff09;字符串格式化&#xff08;4&#xff09;字符串格式化的精度控制…

java spring cloud 企业工程管理系统源码+二次开发+定制化服务

随着企业规模的不断扩大和业务的快速发展&#xff0c;传统的工程项目管理方式已经无法满足现代企业的需求。为了提高工程管理效率、减轻劳动强度、提高信息处理速度和准确性&#xff0c;企业需要借助先进的数字化技术进行转型。本文将介绍一款采用Spring CloudSpring BootMybat…

【AI绘画+本地部署】基于krita的AI绘画(含windows一键整合包)

comfyuikrita所有相关资源整合包(无需下载后面链接)百度网盘&#xff1a;https://pan.baidu.com/s/1iwNRpdTaD26YbzSDm6WLDA?pwdbur8 –来自百度网盘超级会员V4的分享 krita绘画软件官网地址 https://krita.org/en/download/krita-desktop/ krita-ai-diffusion 插件&#xff…

python 自动化模块 - pyautogui初探

python 自动化模块 - pyautogui 引言一、安装测试二、简单使用三、常用函数总结 引言 在画图软件中使用pyautogui拖动鼠标&#xff0c;画一个螺旋式的正方形 - (源码在下面) PyAutoGUI允许Python脚本控制鼠标和键盘&#xff0c;以自动化与其他应用程序的交互。API的设计非常简…

【答案】2023年国赛信息安全管理与评估正式赛答案-模块1任务一

1.根据网络拓扑图所示&#xff0c;按照IP 地址规划表&#xff0c;对防火墙的名称、各接口IP 地址进行配置。共8 分&#xff0c;每错1 处&#xff08;行&#xff09;扣1 分&#xff0c;扣完为止。地址、安全域、接口&#xff08;状态为UP&#xff09;、名称都正确。 2.根据网络…

QT设置QTableWidget左上角文字(CornerButton)

关于这个左上角 在QTableWidget中&#xff0c;左上角有一个可以点击的空白区域&#xff0c;如图&#xff1a; 默认情况下&#xff0c;点击它会全选所有的单元格。 它即不属于列表头&#xff0c;也不属于行表头&#xff0c;它的名称叫Corner Button 在QTableWidget中&#xf…

java数据结构与算法刷题-----LeetCode209. 长度最小的子数组

java数据结构与算法刷题目录&#xff08;剑指Offer、LeetCode、ACM&#xff09;-----主目录-----持续更新(进不去说明我没写完)&#xff1a;https://blog.csdn.net/grd_java/article/details/123063846 解题思路 代码:时间复杂度O(n).空间复杂度O(1) class Solution {public in…

红队打靶练习:BOB: 1.0.1

目录 信息收集 1、netdiscover 2、nmap 3、nikto 4、whatweb 目录探测 1、dirb 2、gobuster 3、dirsearch WEB 主页&#xff1a; robots.txt 其他页面 反弹shell 提权 系统信息收集 jc账户 本地提权 信息收集 1、netdiscover ┌──(root㉿ru)-[~/kali] └…
最新文章