Detection of Individual Tree Crowns in Airborne Lidar Data

news2024/9/21 12:45:08

Abstract

激光扫描提供了一种收集林分信息的好方法。本文介绍了一种在落叶林和混合温带森林中的小足迹光检测和测距(激光雷达)数据中自动描绘单棵树的方法。在光栅化激光数据中,可能的树顶用局部最大值滤波器检测。之后,结合浇注算法(pouring algorithm)、基于知识的树木形状假设以及通过从树顶开始搜索向量来最终检测树冠边缘来描绘树冠。通过与地面测量的树冠投影和摄影测量描绘的树木进行比较来评估分割结果。分割算法适用于针叶林。然而,所实施的方法往往会合并落叶乔木茂密林分中的树冠。

Introduction

对于可持续森林管理,需要大量信息来规划未来的森林管理和记录过去十年的活动。通常需要树种和树种分布、木材体积、木材体积增量、平均树高等参数。在许多欧洲国家,这些与树木相关的参数是每十年进行一次森林清查的基础。目前,这些变量中的大部分是通过在实地调查中手动测量样本地块来估算的,因此,森林清查相当昂贵。在过去的几年中,通过开发基于遥感的库存系统,在降低成本方面付出了更多的努力。

机载激光雷达(光探测和测距)正在成为一种很有前途的技术,用于模拟森林的冠层,从而完成多项清查任务。 Brandtberg (1999) 以及 Hyyppä 和 Inkinen (1999) 证明,北欧国家林分中的单棵树木轮廓可以通过高密度激光数据检测到。 Popescu 等人(2002 年)使用基于冠层高度的可变窗口大小的局部过滤的激光雷达数据估计地块级树高,取得了良好的成功。 Persson 等人 (2002), Leckie 等人(2003) 和 Hyyppä 等人 (2000) 证明,可以根据机载激光雷达数据高精度地测量树高。 Yu 等人 (2003) 是第一个展示使用激光扫描仪数据对北方森林中的单棵树进行变化检测评估的人。

几位作者主要针对针叶林表明,机载激光雷达也是一种使用平均林分方法估算其他林分参数(如体积或平均树高)的好方法(Naesset,1997 年;Magnussen 和 Boudewyn,1998 年;Lefsky等人,1999 年)。然而,在温带森林的典型条件下,采用标准方法会遇到很多困难。由于具有不同生长行为的几种树种可以出现在一个林分中,因此计算林分参数需要先验了解茎数和树种分布。此外,在多样化的森林中,林分结果通常不足以用于许多欧洲国家制定的森林管理规划。特别是出于采伐管理目的,需要有关单棵树的信息。因此,单树勾画和树种分类似乎是在温带森林典型条件下使用遥感技术进行大规模森林清查的先决条件,特别是在计算木材体积、采伐和营林处理方案方面。单树描绘的第一种方法显示,针叶林具有多光谱图像(Gougeon,1995 年;Pollock,1996 年)以及激光雷达数据(Hyyppä 和 Hyyppä,2001 年;Persson 等人,2002 年;Brandtberg 等人,2003 年)或通过融合两种类型的数据(Popescu 等人,2004 年;Popescu 和 Wynne,2004 年)。

本文的目的是开发一种稳健的算法来检测和描绘适用于针叶林以及落叶林和混合林、垂直结构的温带林的树冠和树高。树冠的正确描绘是其他衍生参数(如树位、树高、树冠直径或树冠体积)的先决条件。即使是从多光谱数据中提取树种类型,也需要正确描绘树冠才能获得良好的结果(Koch 等人,2002 年)。由于在温带森林中树冠描绘仍然是一个需要改进的主题,本研究的重点是改进算法以改进密集和多层林分的树冠描绘。

多光谱数据与激光扫描仪数据的融合也是一个重要的研究目标,但不是本文的主题。还必须考虑到,基于激光扫描仪数据的信息提取将为飞行计划提供更大的灵活性。因此,对于数据提供者和用户来说,仅基于激光扫描仪数据的知识具有很高的优先级。

Study Areas

在这里插入图片描述

图 1. 测试地点的位置。

这两个研究区位于德国西南部,靠近弗莱堡市/布赖斯高市(图 1)。选择它们是为了尽可能多地涵盖林分的不同特征。第一个区域(“Mooswald”)位于弗莱堡西北部,占地 20 公顷,海拔约 200 米。年平均气温为 10°C,年总降水量为 850 毫米。这片区域森林由橡木混交林和洪泛平原多层森林组成,只有一个树龄为 30 年的花旗松(Pseudotsuga menziesii) 林除外。主要树种是英国橡树 (Quercus robur) 和角树 (Carpinus betulus),其他落叶树种的比例也在不断变化,例如红橡 (Quereus rubra)、白蜡树 (Fraxinus excelsior) 或挪威枫树 (Acer pseudoplatanus)。大多数林分以前都是按照标准作为矮林管理的。因此,树木的年龄很不均匀,森林结构丰富;树冠间隙与紧密互锁的树冠的非常密集的双层部分交替出现。选择这个试验地点提供了多层混交林结构情况。文章中描述的机载激光扫描仪数据调查并未关注如此复杂的森林情况。

第二个试验场(“Günterstal”)位于弗莱堡东南部。这是一个海拔500米至800米的70公顷山区。这片位于山下地带的地带性森林由长着冷杉和无柄橡树的大西洋山下海滩组成。年平均温度在 5.1°C 和 9.4°C 之间,具体取决于海拔高度,海拔高度在测试地点内有所不同。此外,年总降水量在 950 毫米和 1,800 毫米之间变化,具体取决于海拔高度。在这个站点内,出现了非常陡峭的斜坡。具体来说,植被主要由混合山林组成,这是这种气候的特征。树种主要是山毛榉(Fagus sylvatica,约占 60%)、冷杉(Abies alba,占 25%)和云杉(Picea abies,占 10%)。大多数林分的年龄参差不齐,很多都有下层林木。

Data

激光扫描数据是由TopoSys公司在2002年春夏期间用Falcon系统(TopoSys,2003)获得的。春季飞行的数据(阔叶树没有叶子)被用于计算精确的数字地形模型(DTM),而夏季捕获的数据被用于树木的描绘和树高的估计。 Toposys 系统的激光雷达传感器通过 127 根光纤发出激光脉冲,总脉冲频率为 83 kHz。记录每个脉冲的第一个和最后一个回波。 Mooswald 的平均高度为 400 米,Günterstal 的平均高度为 850 米,导致每个激光束的地面横截面直径(足迹)分别为 40 厘米和 85 厘米,平均点采样密度为 5 至10 点/平方米。由于测试点覆盖有多个重叠的激光条,因此实现了高达 20 个点/m2 的密集点分布。然而,由于传感器的结构,这些点以线状图案不规则地间隔开。据 TopoSys, Inc. 称,每个激光点的位置相对水平精度小于 0.5 米,相对垂直精度小于 0.15 米。

对于所有回波,反射物点的 (x、y 和 z) 位置都被存储。地面点 (DTM) 和冠层表面点均使用类似于 Elmkvist (2000) 开发的活动表面算法进行识别。开发的算法基于能量最小化过程,该过程引入具有内力和外力的表面。这表面充当磁性物体,会被激光点吸引,激光点也充当小磁铁。此外,表面会受到重力的影响。最后引入弹性强度作为内力。通过同时最小化所有这些力,通过迭代最小化过程实现平衡。此过程的最终结果是数字表面模型 (DSM) 或 DTM,具体取决于参数设置、使用的激光点和力作用的方向。该过程是通过将表面采样到规则网格中来完成的。这两个模型存储在二维光栅图像中,其中灰度值表示高度。单独的高度分辨率为 1 厘米。

作为参考数据,98 棵样本树(49 棵花旗松和 49 棵阔叶树(主要是角树))的茎坐标、胸高直径和树冠投影已在 Opfingen 的五个均匀分布的地块中进行了地面测量。冠投影已被构造为来自八个正交投影冠边缘点的多边形。这些点代表典型的形状,但不考虑极端分支。因此,它是一种主观方法。两个数据集都被地理编码到相同的参考系统(高斯-克吕格坐标)。由于无法提供高海拔试验场“Günterstal”的地面投影数据,因此已使用立体 CIR 图像进行地面测绘。大约 80% 的面积被立体测量并用作参考数据。由于航空照片中的遮挡和阴影,以及不同数据类型之间的对象匹配,航空照片数据与激光扫描仪数据的比较问题是众所周知的,但没有其他方法可以验证。此外,基于航拍照片的单树勾画是一种公认​​的方法,可以很好地估计优势树的数量,因此至少有了这个数据库,就可以验证优势树的评估。在本节中,随机选择了五块地块(每块面积 10,000 平方米)进行进一步分析。

Data Processing and Analysis

使用图像处理系统 HALCON (MVTec, 2003) 的库,用 C++ 实现计算机分析。

Preprocessing

首先,通过从 DSM 的高度值中减去每个像素处 DTM 的高度值来计算数字树冠高度模型 (DCHM),以便可以直接从 DCHM 中获取树高。 DCHM 绘制了树冠的粗糙表面。特别是,大型阔叶树在其树冠地形中具有较大的高度变化。一个树冠可能有几个较小的顶部,这使得单棵树的检测变得困难。 DCHM 的高斯平滑消除了微小的高度偏差,但如果图像平滑得太强烈,小树也可能会丢失。

在这里插入图片描述

图 2. Digital Crown Height 模型分为两个高度等级,并使用调整后的强度进行平滑处理。

为了减少此类问题,平滑的强度适应树木的高度。使用阈值运算符,DCHM 分为两个高度等级(低 20 米的树木和高 20 米的树木)。一类区域内的较小孔被关闭以减少边缘效应。每个高度类分别用高斯函数过滤(较低的树分别为 σ = 0.81 \sigma=0.81 σ=0.81和较高的树分别为 σ = 2.0 \sigma=2.0 σ=2.0),然后合并两部分(图 2)。通过对初步分割结果的视觉判断,已经在当前数据的预测试中确定了最佳的高度等级数、高度阈值和平滑强度 (Heyder, 2003)。

Crown Delineation

在平滑的 DCHM 中,使用局部最大值过滤器检测树顶。如果一个像素的所有邻居(在 4 个连接的邻域中)都具有较低的高度值,或者如果具有相同高度(“高原”)的某些连接像素的所有邻居都具有较低的高度值,则像素计为局部最大值。从那些局部最大值开始,只要存在具有较低或相同高度值的相邻像素(“浇注”算法,已在 HALCON 中实现),就会扩展区域。 “高谷”中的重叠区域最终平均分配给所有涉及的树。该算法类似于将水倒在山上,因此类似于倒置的经典分水岭算法 (Soille, 1999)。浇注算法已经生成了树冠实际形状的第一个近似值(图 3)。

但是,仍然存在大量明显“错误”的片段。有些区域太小而不能成为一棵树,有些区域的形状不太可能属于一棵树,有些区域之间的空间关系不寻常,有些区域覆盖了一棵树以及相邻的树冠间隙。执行以下步骤以消除此类错误并改善分割结果。

为了根据每棵树的高度调整后续步骤的阈值,树冠区域首先根据树顶的高度分为两组。从现在开始,超过 22 米的树木被称为“高树”,低于 22 米的被称为“低树”。

从假设(森林清查指令)出发,树木具有特定的高度相关的最小面积,选择面积低于 3   m 2 3 \mathrm{~m}^2 3 m2 的高树和面积低于 1   m 2 1 \mathrm{~m}^2 1 m2 的低树。对于这些区域中的每一个,选择具有最长公共边界的相邻区域并将其与该相邻区域合并(图 4)。两棵树的较高顶端成为新树的顶端。

此外,我们假设树顶彼此之间有一定的最小距离。我们为低树选择了 1 m,为高树选择了 2 m。如果两个树顶在此距离内,则合并相应的树冠段(图 5)。为了避免在非常年轻的小树林中出现问题,在分割算法的每一步中只能将四个原始区域合并为一个新区域。

在这里插入图片描述

图 3.“倾倒”算法的结果。从局部最大值开始,只要存在较低的灰度值,就会扩展区域。树木区域内的微小区域是最大值或高原。

在这里插入图片描述

图 4. 一棵非常小的树(白色边界线)与具有最长公共边界的相邻树区域合并。结果是一棵新树,由标有黑色边框线的两个树区域组成。对于树顶,选择两个合并区域的较高顶部。

经过前面的划定步骤,仍然存在无法分离的树群。椭圆组是通过最小面积和区域的等值线(拟合椭圆的两个半径的商)的组合来识别。如果一个区域的长度至少是其宽度的2.5倍,并且至少是其高度等级的最小面积的3倍,它就被标记为一个群。这些群落被分解,类似于Straub和Heipke(2001)的方法,该方法是为定居点内的树群开发的(图6)。对于每个树群,检测出最大的内圈并从该区域中减去。然后,确定剩余区域的最大内圈并减去,以此类推,直到该圈的面积低于高度等级的双倍最小面积。随后,只要新旧边界像素之间没有超过60厘米的高度差异,圆圈就会扩大,直到新区域相互接触或达到原始组的边界。

在这里插入图片描述

图 5. 显示了四个区域,它们由深灰色线包围,中间由白线包围。四个非常小的黑点代表四个树顶。如果两个片段的局部最大值(黑点)靠得很近(低树小于 1 m,高树小于 2 m),则合并相应的区域(白色)。在这种特殊情况下,四个区域合并为一个新区域。选择最高的树顶作为合并树的树顶。

单一树木检测算法的最后一部分是确定实际的树冠边缘,将一棵树与邻近的树冠间隙或邻近的林下树木分开。它是基于弗莱堡大学HighScan项目(Hyyppä等人,2002年,Friedländer 2002年)中开发的算法,即用搜索矢量检测树冠的想法,但与这种方法相反,它只是用于确定基于先前分割结果的最终树冠边缘。它只减少了树的面积,并没有扩大它。图7给出了这种算法的一个例子。从树顶开始,计算到每个边界点的向量。在每个矢量上以一个像素宽的步骤进行,在这些点上的树冠的坡度被测量为两点之间的高度差。如果这个高度差每0.5米的距离超过2.5米,矢量就会中断,并产生一个新的边界点。冠状边缘被移到里面。偶尔出现的离群点随后被删除。图8总结了整个分割过程。

Assessment of the Segmentation and Tree Type

位于陆地或摄影测量地块之一内的每棵自动检测到的树都在视觉上分为以下类别之一(Leckie 等人,2003 年):

  • 正确描绘
  • 令人满意的描绘(一棵自动检测到的树对应一棵参考树,但两棵树的面积重叠不到 60%)
  • 合并的树(在自动描绘的树中有多个参考树)
  • 分割树(一个参考树中有多个自动描绘的树)
  • 未找到(存在参考树,但没有相应的自动描绘树)

每棵自动检测到的树只计算一次。

对于基于数字森林数据库的所有分段树,执行针叶树、年轻和老阔叶树三类的分配。

Results and Discussion

分割结果与参考树的比较给出了以下结果(表 1)。对于 49 棵地面测量的道格拉斯冷杉 (Pseudotsuga menziesii),发现了47棵自动检测到的树。其中 87.3% 的识别正确或至少令人满意(图 9)。主要错误是遗漏了一些非常小的树。树冠面积被高估:参考树的平均树冠面积为 8.2 m2,而分段树为 11 m2。对应49棵阔叶参考树(Carpinus betulus, Acer pseudoplatanus, Fraxinus excelsior),只找到30棵自动划定的树。其中,50%的描述良好或令人满意,43.3%包括多个合并的参考树。合并后的树主要将次优势树与相邻的优势树组合在一起。部分优势树构建了一个密集、紧密、均匀的树冠,无法分离。图10显示了一个示例图的结果。与摄影测量的参考树冠相比,61.7%的树木被描绘为正确或令人满意,25.6%合并了两棵或更多参考树,4.2%被分裂;未检测到39棵参考树 (8.5%)。

在这里插入图片描述

图 6. 椭圆树组 (a) 通过减去内圆 (b) 和结果区域的后续扩展 © 来分离。

在这里插入图片描述

图 7. 为了将树木与相邻的树冠间隙分开 (a),创建了从树顶到每个边界点的向量 (b)。如果此向量上两点之间的高度差超过固定阈值,则会生成一个新的边界点(黑色)(c)。

针叶树种的分割结果非常令人鼓舞。几乎所有优势树都被发现,树冠轮廓非常接近地面测量的树冠投影。与地面测量的树冠多边形相比,树冠的边缘有时甚至更精确,尽管树冠面积被高估了。必须考虑到,现场的树冠投影必须处理不确定性,因此树冠面积的真实值可能介于两个测量值之间。对于落叶树种,自动分割结果明显低估了树木数量;许多参考树被合并。这部分是由于没有找到次优势树(从林务员的角度来看这不是很重要),但也有一些优势树冠被合并了。无法分离具有均匀高度分布的非常密集生长的主要角树。然而,如果主要落叶树的树冠没有紧密互锁,分割结果会大大改善。可能更复杂地适应冠层条件的过滤器强度将改善分割结果。

Conclusions

激光雷达数据可以在小规模森林清查中发挥重要作用,尤其是在推导树高和林分体积方面。在混交林中,单棵树的描绘和分类是必要的。如本文所示,自动分割适用于针叶林和更开阔的落叶林。树冠面积略有高估,但正确找到了大多数树木的数量和位置。只有在检测非常小或被抑制的树木时才会出现问题。在茂密的落叶林中,树冠紧密相连、均匀,很难将树冠彼此分开。因此,茎数被低估了。先进的全波形激光雷达系统与多光谱相机相结合,例如 IGI Litemapper 5600(Hug 等人,2004 年),可以改善此类林分中的茎数。来自此类系统的数据信息的增加是巨大的,从数据中选择相关信息将是未来的挑战。另一种可能性是在冬季或春季进行激光雷达注册。优点是更多的激光点将从树冠和/或树干内反射,因此,更好的树木分离可能是可能的。随着描绘算法的进一步发展,也​​可能会有一些改进。但即使对所有树干的评估不完整,激光雷达也将成为未来几年支持小规模清查的有效手段,因为对所提供的主要树木信息的合理正确和快速评估已经为推导提供了宝贵的基础可持续森林管理框架所需的森林参数。此外,正确描绘景观中的单棵或散落树木对于许多管理任务也具有很高的价值。

表 1. 与陆地或摄影测量的参考树相比的分割结果

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

图 8. 分割步骤。

在这里插入图片描述

图 9. 地面测量的道格拉斯冷杉树冠投影(黑色)和相应的分割结果(白色)。

在这里插入图片描述

图 10. 落叶树(黑色)的树冠投影以及相应的分割结果(白色)。

论文链接

References

Brandtberg, T. 1999. Automatic Individual Tree-based Analysis of High Spatial Resolution Remotely Sensed Data, Ph.D. dissertation, Acta Universitatis, Agriculutae Sueciae, Silvestria 118, Swedish University of Agricultural Sciences, Uppsala, Sweden.

Brandtberg, T., T.A. Warner, R.E. Landenberger, and J.B. McGraw, 2003. Detection and analysis of individual leaf-off tree crowns in small footprint, high sampling density lidar data from the eastern deciduous forest in North America, Remote Sensing of Environment, 85:290–303.

Friedlaender, H., 2002. Die Anwendung von flugzeuggetragenen Laserscannerdaten zur Ansprache dreidimensionaler Strukturelemente von Waldbeständen, Ph.D. dissertation, University of Freiburg, Freiburg, Germany, 64 p.

Elmqvist, M., 2000. Automatic Ground Modelling using Laser Radar Data, Master thesis, Linköping University, Linköping, Sweden, 30 p.

Gougeon, F., 1995. A crown-following approach to the automatic delineation of individual tree crowns in high spatial resolution aerial images, Canadian Journal of Remote Sensing, 21(3): 274–284.

Heyder, U., 2003. Automatische Delinierung und Klassifizierung von Bäumen aus Laser- und Multispektraldaten, Diploma-Thesis, University of Freiburg, Freiburg, Germany, 87 p.

Hug, C., A. Ullrich, and A. Grimm, 2004. Litemapper 5600 - A waveform digitizing lidar terrain and vegetation mapping system, Proceedings of the ISPRS Working Group VIII/2, Laser Scanners for Forest and Landscape Assessment, Volume XXXVI, Part 8/W2:24–29 Hyyppa, J., and M. Inkinen, 1999. Detecting and estimating attributes for single trees using laser scanner, Laser Radar Technology and Applications IV, 3707:57–69.

Hyyppä, J., M. Schardt, H. Haggrén, B. Koch, U. Lohr, H.U.

Scherrer, R. Paananen, H. Luukkonen, M. Ziegler, H. Hyyppä, U. Pyysalo, H. Friedländer, J. Uuttera, S. Wagner, M. Inkinen, A. Wimmer, A. Kukko, E. Ahokas, and M. Karjalainen, 2001.

HIGH-SCAN: The first European-wide attempt to derive singletree information from laserscanner data, The Photogrammetric Journal of Finland, 17:58–68.

Hyyppä, J., and H. Hyyppä (editors), 2001. HIGH-SCAN – Assessing Forest Stand Attributes by Integrated Use of High Resolution Satellite Imagery and Laserscanner – Final Report, ENV4-CT980747, EU-Kommission, DG XII.

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Bootstrap】基础知识和环境配置

目录 一、Bootstrap基础 1. 概念 2. 特点 3. 组成 3.1 基本结构 3.2 丰富的CSS样式库 3.3 布局组件 3.4 插件 二、bootstrap的环境配置 1. 在页面中引入本地文件 2. 使用CDN加速器 一、Bootstrap基础 1. 概念 Bootstrap是一个基于HTML、CSS和JavaScript语言编写的…

动手学习深度学习-《自动求导》

向量链式求导法则 标量链式法则: 扩展到向量: yyy是关于标量uuu的一个标量,x\bf{x}x是一个向量 yyy是关于向量u\bf{u}u的一个标量,x\bf{x}x是一个向量 y\bf{y}y是关于向量u\bf{u}u的一个向量,x\bf{x}x是一个向量…

Nginx+keepalived 实现高可用,防盗链及动静分离配置详解

一、Nginx Rewrite 规则 1. Nginx rewrite规则 Rewrite规则含义就是某个URL重写成特定的URL&#xff08;类似于Redirect&#xff09;&#xff0c;从某种意义上说为了美观或者对搜索引擎友好&#xff0c;提高收录量及排名等。 语法&#xff1a; rewrite <regex> <r…

Oracle11g彻底卸载教程(详细版)

目前项目结束,暂时不需要Oracle了,为清理电脑并便于后续重装,现记录彻底卸载的步骤如下: 1、按下“Windows”+“R”键,在运行窗中,输入compmgmt.msc,进入计算机管理------>服务,停止所有Oracle服务(对于状态为 正在进行 的服务,右键------>停止)。 2、在开始…

遗传算法解决旅行商问题(TSP)

遗传算法解决旅行商问题 作者&#xff1a;Cukor丘克环境&#xff1a;MatlabR202a vscode 问题描述 旅行商问题&#xff08;TSP&#xff09;. 一个商人欲从自己所在的城市出发&#xff0c;到若干个城市推销商品&#xff0c;然后回到其所在的城市。如何选择一条周游路线&…

SpringBoot3初体验 - 第457篇

历史文章&#xff08;文章累计450&#xff09; 《国内最全的Spring Boot系列之一》 《国内最全的Spring Boot系列之二》 《国内最全的Spring Boot系列之三》 《国内最全的Spring Boot系列之四》 《国内最全的Spring Boot系列之五》 5个月的精华&#xff1a;Spring/SpringB…

【JavaScript】多维数组及数组扁平化

文章目录【JavaScript】多维数组及数组扁平化一. 概念二. 数组扁平化方式一&#xff1a;使用flat()方法方式二&#xff1a;使用递归方式三&#xff1a;使用reduce()方式处理三. 对象数组的联合操作【JavaScript】多维数组及数组扁平化 一. 概念 (1) 一维数组&#xff1a;数组…

深度学习Week13-火灾温度预测(LSTM)

&#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客&#x1f366; 参考文章&#xff1a;第R2周&#xff1a;LSTM-火灾温度预测&#xff08;训练营内部可读&#xff09;&#x1f356; 作者&#xff1a;K同学啊任务说明&#xff1a;数据集中提供了火灾温度&…

c++知识点总结

文章目录1.引用2. 重载3. extern “C”4.构造函数5.析构函数6.类和对象7.面向对象模型8.继承9.多态10.函数模板11.类模板12.STL1.引用 不要返回局部变量的引用&#xff0c;调用函数执行后局部变量会销毁 2. 重载 是C多态的特性&#xff08;静态多态&#xff09;。同一个函数名代…

正点原子STM32(基于HAL库)

正点原子B站视频地址&#xff1a;https://www.bilibili.com/video/BV1bv4y1R7dp?p1&vd_sourcecc0e43b449de7e8663ca1f89dd5fea7d 目录单片机简介Cortex-M介绍初识STM32STM32命名规则STM32 选型STM32 设计数据手册最小系统IO 分配STM32启动过程分析启动模式启动文件分析启动…

基于彩色的图像分割

图像分割就是把图像分成若干个特定的、具有独特性质的区域并提出感兴趣目标的技术和过程。它是由图像处理到图像分析的关键步骤。现有的图像分割方法主要分以下几类&#xff1a;基于阈值的分割方法、基于区域的分割方法、基于边缘的分割方法以及基于特定理论的分割方法等。从数…

小程序03/ uni-app认识目录结构 、uni-app应用生命周期 和 生命周期钩子、uni-app页面生命周期 和 生命周期钩子

一.uni-app认识目录结构 二.uni-app应用生命周期 和 生命周期钩子 位置: uni-app 在App.vue中监听 在页面监听无效 说明: App.vue是uni-app的主组件 所有页面都是在App.vue 下进行切换的、是页面入口文件 但是App.vue 本身不是页面 这里不能编写视图元素 也就是没有<tmpl…

Git(一) - Git 概述

01_尚硅谷_Git_课程介绍_哔哩哔哩_bilibili Git 是一个免费的、开源的分布式版本控制系统&#xff0c;可以高效的处理从小型到大型的各种项目。 一、何为版本控制 版本控制是一种记录文件内容变化&#xff0c;以便将来查阅特定版本修订情况的系统。 版本控制其实最主要的是可以…

java 瑞吉外卖优化day2 Nginx

Nginx概述 下载与安装 可以到Nginx官方网站下载Nginx的安装包&#xff0c;地址为&#xff1a;https://nginx.org/en/download.html 安装过程&#xff1a; 1、安装依赖包 yum -y install gcc pcre-devel zlib-devel openssl openssl-devel 先yum install wget &#xff0c;…

随机数 - 时间种子的方案与实践

1.应用场景 主要弄清楚设置随机数种子的方法&#xff0c;可用于游戏开发当中的时间种子从而产生合理的随机数&#xff0c;避免出现bug。 2.学习/操作 1.文档阅读 07 | 带你快速上手 Lua-极客时间 2.整理输出 2.1 什么是种子 现在很多朋友下载东西时都会用bt种子文件&#xff0…

5分钟带你学习 linux 收发邮件步骤详解 at命令详解 crontab命令详解 附加at crontab命令练习

linux 收发邮件步骤详解 1.安装软件yum install mailx -yyum install sendmail -y 2.启动服务sendmailsystemctl start sendmail 3.更改配置vim /etc/mail.rc at命令详解 实例&#xff1a; crontab命令详解 实例&#xff1a; linux 收发邮件步骤详解 1.安装软件 yum…

拜占庭将军问题

前言 在分布式系统中交换信息, 部分成员可能出错导致发送了错误的信息, 在这种情况下如何达成共识. 这就是拜占庭将军问题所要解决的. 问题的简要描述如下: 3个军队协同作战(为了简单易懂, 以3个军队描述)每支军队的作战策略有两种"进攻"和"撤退"每个军…

SparkLaunch提交Spark任务到Yarn集群

SparkLaunch提交任务1.提交Spark任务的方式2.SparkLaunch 官方接口3.任务提交流程及实战1.提交Spark任务的方式 通过Spark-submit 提交任务通过Yarn REST Api提交Spark任务通过Spark Client Api 的方式提交任务通过SparkLaunch 自带API提交任务基于Livy的方式提交任务&#xf…

深拷贝浅拷贝的区别?如何实现一个深拷贝

一、数据类型存储 前面文章我们讲到&#xff0c;JavaScript中存在两大数据类型&#xff1a; 基本类型引用类型 基本类型数据保存在在栈内存中 引用类型数据保存在堆内存中&#xff0c;引用数据类型的变量是一个指向堆内存中实际对象的引用&#xff0c;存在栈中 二、浅拷贝…

【2】SCI易中期刊推荐——遥感图像领域(2区)

🚀🚀🚀NEW!!!SCI易中期刊推荐栏目来啦 ~ 📚🍀 SCI即《科学引文索引》(Science Citation Index, SCI),是1961年由美国科学信息研究所(Institute for Scientific Information, ISI)创办的文献检索工具,创始人是美国著名情报专家尤金加菲尔德(Eugene Garfield…