遥感图像处理二(ENVI5.6 Classic)
1 实验目的和内容
1.1 实验目的
本次上机旨在继续深入了解ENVI软件的基本使用,并对提供的实验数据进行基本的图像分割和地物分类等操作并分析结果。
1.2 实验内容
1.2.1 图像分割
对教材示例数据“C7图像分割”中的风景图、兰花图和娃娃图分别进行图像分割操作。
1.2.2 图像分类
选影像数据进行图像分类操作,要求至少使用两种非监督分类方法五种监督分类方法,对比不同方法的分析效果并作精度评价。
1.3 实验流程
通过对实验内容进行分析,不难发现,本次实习主要包括图像分割和图像分类这两大部分,在该条件下,笔者总结了本次实验的操作逻辑,如图1.3-1所示。
图1.3-1 实习2操作流程图
2 图像操作处理过程
2.1 图像分割
2.1.1 风景图操作
首先,依次点击【File】-【Open Image File】在ENVI Classic中添加数据“地物与直方图DSCF0153”,并将其按照其原本的RGB三波段加载出来。如图2.1-1所示。
图2.1-1 添加图像数据
点击【Enhance】-【Interactive Stretching】即可观察RGB三波段的阈值,不难发现其直方图呈现双峰分布的特点,而这也表明了图像中主要有两类地图的样式,结合图2.1-1也不难发现,风景图主要是以颜色偏深色的地面和偏亮一些的天空为主。RGB波段直方图如图2.1-2所示。
图2.1-2 三波段直方图
接下来可以使用【Basic Tool】-【Band Math】进行波段的相关计算,这里输入公式为“(b1 gt 150)*(b2 gt 160)*(b3 gt 150)”,如图2.1-3所示。
图2.1-3 波段计算
由于这里的运算只是针对b1、b2和b3,所以需要将这里的b1、b2和b3指定到相应的风景图的RGB波段上。操作如图2.1-4所示。
图2.1-4 指定波段
得到波段计算的结果如图2.1-5所示,不难发现经过初步的波段运算,图像的前景和地面被很好的分离了,这样就形成了一个良好的掩膜文件。
图2.1-5 初步波段运算结果
接下来可以继续使用【Basic Tool】-【Band Math】进行波段计算,这里输入公式为“b4*(1-(b1 gt 150)*(b2 gt 160)*(b3 gt 150))”,如图2.1-6所示。
图2.1-6 波段运算
同上理,这里需要设置一下b1、b2、b3和b4波段分别为风景图的R、G、B三个波段以及通过【Map Variable to Input File】选择的风景图多波段影像。操作如图2.1-7所示。
图2.1-7 波段选择
最后,即可得到相应的分割结果,主要就是将地物给单独的提取出来,和GIS操作中的掩膜提取十分类似,不过这里是直接通过对栅格数据的直接操作而实现的。分割结果如图2.1-8所示。
图2.1-8 风景图分割结果
2.1.2 兰花图操作
兰花图同样位于“C7图像分割”文件夹中,依次点击【File】-【Open Image File】在ENVI Classic中添加数据“兰花图”,并将其按照其原本的RGB三波段加载出来。如图2.1-9所示。
图2.1-9 添加兰花图数据
通过观察兰花图像的直方图,不难发现其蓝光波段的峰值远大于红光和绿光波段,因此可以利用这种特性来针对兰花进行提取。兰花图像直方图如图2.1-10所示。
图2.1-10 兰花图像三波段直方图
接下来可以继续使用【Basic Tool】-【Band Math】进行波段计算,这里输入公式为“(b1 gt b2)*(b1 gt b3)”,如图2.1-11所示。
图2.1-11 波段运算
同上理,这里需要设置一下b1、b2、b3波段分别为风景图的B、R、G三个波段。操作如图2.1-12所示。
Tips:因为这里针对蓝光波段进行了一步操作,所有要将特征关注放在蓝光波段上,即b1、b2、b3波段不是直接赋RGB三个波段,而有一定顺序的调整。
图2.1-12 波段选择
将特征波段进行提取即可得到二值化的波段图像数据,这里就是兰花的掩膜图像,如图2.1-13所示。
图2.1-13 兰花掩膜图像
同2.1.1理,这里可以继续对兰花图像进行掩膜提取的操作,这里输入的波段运算公式为“b1*b2”,并将b1选择为上一步的掩膜图像,将b2选择为整个兰花图像的多波段图像。操作如图2.1-14所示。
图2.1-14 波段运算及赋值操作
最终即可得到提取后的兰花影像,如图2.1-15所示。
图2.1-15 兰花图图像分割结果
2.1.3 娃娃图操作
娃娃图也是位于“C7图像分割”文件夹中,依次点击【File】-【Open Image File】在ENVI Classic中添加数据“娃娃图”,并将其按照其原本的RGB三波段加载出来。如图2.1-16所示。
图2.1-16 加载娃娃图图像
同样,这里也依次点击【Enhance】-【Interactive Stretching】观察图像的RGB三波段的直方图分布。和2.1.1中的风景图与2.1.2中的兰花图不同的是,娃娃图中没有特定的特征颜色,其直方图分布的多峰特征也恰恰印证了这一点,娃娃图图像直方图如图2.1-16所示。
图2.1-16 娃娃图三波段直方图
这里以特征提取中心的娃娃抱桃子为例,和前两节中采用相同的方式,先提取掩膜在进行感兴趣区域的提取。使用【Basic Tool】-【Band Math】进行波段运算,将公式输入为“float(b1)/float(b2)”,并将相应的b1、b2分别设置为娃娃图的R和G波段。操作如图2.1-17所示。
图2.1-17 娃娃图波段运算
据此运算可以实现通过放大红光波段的影响从而实现掩膜提取,提取的结果如图2.1-18所示。
图2.1-18 黑白图像提取结果
通过如图2.1-18的提取结果可以很明显的观察到,当前的二值化提取并不理想,现在呈现的灰度值过于多样,比较难辨别,因此这里可以尝试继续通过设定阈值来提取符合预期的掩膜图像。提取后的娃娃图的图像直方图如图2.1-19所示。
图2.1-19 提取后直方图
接下来,继续使用【Band Math】工具,将公式设置为“b1 gt 0,98”,同时将这里的b1设定为刚刚波段计算得到的黑白图像。操作如图2.1-20所示。
图2.1-20 波段运算
此次运算即可得到较为理想的二值化的掩膜图像,如图2.1-21所示。
图2.1-21 掩膜图像结果
最后,和2.1.1节与2.1.2节中一样,将原始图像和掩膜图像叠加运算求得掩膜提取结果。操作如图2.1-22所示。
图2.1-22 波段运算
最终,可以得到娃娃图提取的结果,如图2.1-23所示。
图2.1-23 掩膜文件提取
2.1.4 图像分割操作结果分析
在本次实验中,通过对风景图、兰花图和娃娃图的图像分割操作,我们得到了一系列的分割结果。这些结果展示了不同图像分割技术在处理不同类型图像时的有效性和局限性。
1.风景图分割:通过波段运算和掩膜提取,我们成功地将天空和地面分离。这一过程表明,通过分析直方图和选择合适的波段阈值,可以有效地对图像中的主要地物进行分割。
2.兰花图分割:利用兰花图像中蓝光波段的峰值特性,我们通过波段计算和掩膜提取得到了兰花的掩膜图像。这一结果说明了特定波段的特征可以作为图像分割的重要依据。
3.娃娃图分割:娃娃图的分割过程较为复杂,因为没有特定的特征颜色。通过波段运算和阈值设定,我们得到了较为理想的二值化掩膜图像。这一过程展示了在缺乏明显特征时,如何通过多次迭代和参数调整来优化分割结果。
总体而言,图像分割操作结果分析表明,选择合适的分割方法和参数对于获得准确的分割结果至关重要。同时,这也强调了在实际应用中,需要根据图像的具体特征和需求来灵活选择和调整分割策略。
2.2 图像分类
2.2.1 非监督分类 – K-Means聚类
ENVI的所有操作基础都是基于多级窗口来实现的,这个原理其实应用过二次开发就很明了,因为数据都需要通过存储到内存才能进行调用处理,因此在进行图像分类处理也不例外,都需要先进行数据的加载。
这里先点击【File】-【Open Image File】在ENVI Classic中添加数据“”,并将其按照3、2、1波段赋值RGB真彩色加载出来。如图2.2-1所示。
图2.2-1 加载影像
接下里,依次点击【Classification】-【Unsupervised】-【K-Means】使用K-Means聚类对如上的Landsat7影像进行一步无监督分类。通过观察图2.2-1的影像地物的大致类别可以将其区分为五类进行分类。操作如图2.2-2所示。
图2.2-2 聚类分析操作
得到的分类结果如图2.2-3所示,不难发现,这里分类得到的影像呈现了一个比较明显的特征就是大体上可以将特征地物给区分开,但由于区分密度不一致,导致特征光谱曲线的结果不一致,同样由于植被的电磁波反射率与水体类似,导致了植被和水体呈现了相同的分类类别。
图2.2-3 K-Means聚类分析结果
显然,在如上的分析中,相当于是纯粹只通过特征光谱进行区分,而没有任何的附加区分条件,因此这里可以选择叠加一些条件从而辅助其更好的进行区分,这里的策略就是通过计算NDVI来辅助进行精度更高的分类。
Tips:这里使用归一化植被指数的主要原因就是因为在直接使用光谱进行分类时没有很好的分类植被和水体。
这里依次点击【Transform】-【NDVI】进行NDVI的计算,操作如图2.2-4所示。
图2.2-4 NDVI计算
NDVI计算得到的结果如图2.2-5所示。
图2.2-5 NDVI计算结果
接下来,可以使用【Layer Stacking】工具将NDVI计算的结果与原始影像进行合并处理,操作如图2.2-6所示。
图2.2-6 合并影像
接下来,就可以继续使用【K-Means】进行聚类分析了,最终得到的分类结果如图2.2-7所示。
图2.2-7 二次聚类分析结果
对比单纯利用光谱进行聚类分析(左边影像)和叠加NDVI后再进行据分类分析的结果(右边影像),可以很明显的察觉到,当叠加一些参量后,可以显著提高聚类分析的结果,尤其是在已知分类较为不理想的地物时。
Tips:这里笔者举例时叠加了NDVI,这主要是由于前面单一借助光谱进行分类时可以看到的植被分类不明显所致。如果时针对水体分类不明显则可以使用NDWI指数来辅助分类,这里的选择是弹性的,主要还是针对初步结果分析后所得的。
2.2.2 非监督分类 – ISODATA
除去K-Means,ISODATA也是一种优良的非监督分类方法。这里依次点击【Classification】-【Unsupervised】-【ISODATA】对2.2.1节中已经添加的原始影像进行分类。通过对地物进行观察,可以适当的将这里的动态分类设置为为“5-7”类,并且将主要依据像素的分类参数进行适当的调整。操作如图2.2-8所示。
图2.2-8 ISODATA分类
得到的分类结果如图2.2-9所示。
图2.2-9 ISODATA分类结果
这里可以将2.2.1节中的K-Means初步分类的结果与ISODATA分类的结果进行一步对比,如图2.2-10所示。
图2.2-10 两种非监督分类结果对比
通过对只基于光谱反射率分类的ISODATA分类结果(左边影像)和K-Means分类结果(右边影像)进行对比分析,很明显,基于ISODATA分类的效果是更优良的,其对于植被和水体的分类效果显然更加显著且贴合实际,减少了因为反射率相同而产生的问题。
2.2.3 监督分类 – 平行管道法
监督分类和无监督分类一个显著的区别就是无监督分类可以自行分类而无须干预,这在2.2.1节和2.2.2节中的操作中便可看到。而监督分类的特征就是需要人为进行干预,而这种干预手段就是预设训练集。
这里还是先加载Landsat7影像并以真彩色显示到窗口,接下来依次点击【Overlay】-【Region of Intrest】设置训练集,这里笔者依据对图像的理解,选择设置了五类地物,并依据“少量多次”的原则勾选处了训练集样本,如图2.2-11所示。
图2.2-11 设置训练集
Tips:这里笔者只是按照个人理解和个人感兴趣区域进行地物划分,显然可以继续细分类别设置更加精细的训练集,不过这样划分的训练时间成本一定会相应增加。
为了方便后续其它监督分类,可以使用【Save ROIs to File】将勾画的训练集进行保存,操作如图2.2-12所示。
图2.2-12 文件保存操作
同理,为了后续方便进行监督分类的精度评价,这里也勾画测试数据集并保存,操作如图2.2-13所示。
图2.2-13 保存测试集
Tips:这里需要注意的一个细节是测试集所勾选的区域不要和训练集相重合,以免对精度评价产生影响。
进行完数据集的处理工作后,就可以进行监督分类了,这里先以平行管道法进行示例。在确保训练集兴趣点是打开的情况下,依次点击【Classification】-【Supervised】-【Parallelepiped】进行监督分类,将五种分类类别全部勾选,即可进行监督分类,操作如图2.2-14所示。
图2.2-14 平行管道法监督分类
最后可得训练结果如图2.2-15所示。
图2.2-15 平行管道法监督分类结果
不难发现,和此前的无监督分类的两种方法相比,分类结果还是比较理想的。
2.2.4 监督分类 – 最小距离法
最小距离法也是监督分类方法中的一种,其主要是基于距离度量,将像元分配给与其最近的训练样本类别,而这里通常使用欧氏距离。
依次点击【Classification】-【Supervised】-【Minimum Distance】进行监督分类,将五种分类类别全部勾选,即可进行监督分类,操作如图2.2-16所示。
图2.2-16 最小距离法分类
分类结果如图2.2-17所示。
图2.2-17 最小距离法监督分类结果
2.2.5 监督分类 – 马氏距离法
同理,接下来使用马氏距离法进行分类。依次点击【Classification】-【Supervised】-【Mahalanobis Distance】进行监督分类,将五种分类类别全部勾选,即可进行监督分类,操作如图2.2-18所示。
图2.2-18 马氏距离法监督分类
分类结果如图2.2-19所示。
图2.2-19 马氏距离法监督分类结果
2.2.6 监督分类 – 最大似然法
接下来使用最大似然法进行分类。依次点击【Classification】-【Supervised】-【Maximum Likelihood】进行监督分类,将五种分类类别全部勾选,即可进行监督分类,操作如图2.2-20所示。
图2.2-20 最大似然法监督分类
分类结果如图2.2-21所示。
图2.2-21 最大似然法监督分类结果
2.2.7 监督分类 – 二进制编码法
接下来使用二进制编码法进行分类。依次点击【Classification】-【Supervised】-【Binary Encoding】进行监督分类,将五种分类类别全部勾选,即可进行监督分类,操作如图2.2-22所示。
图2.2-22 二进制编码法监督分类
分类结果如图2.2-23所示。
图2.2-23 二进制编码法监督分类结果
2.2.8 监督分类 – 支持向量机
接下来使用支持向量机进行分类。依次点击【Classification】-【Supervised】-【Support Vector Machine】进行监督分类,将五种分类类别全部勾选,即可进行监督分类,操作如图2.2-24所示。
图2.2-24 支持向量机监督分类
分类结果如图2.2-25所示。
图2.2-25 支持向量机监督分类结果
2.2.9 监督分类 – 神经网络
接下来使用神经网络进行分类。依次点击【Classification】-【Supervised】-【Neural Net】进行监督分类,将五种分类类别全部勾选,即可进行监督分类,操作如图2.2-26所示。
图2.2-26 神经网络监督分类
分类结果如图2.2-27所示。
图2.2-27 神经网络监督分类结果
这里可以统一将七种监督分析进行简单的对比,如图2.2-28所示。
图2.2-28 七种监督分类结果对比
通过对其中监督分类的结果进行对比,显然,这里的最小距离法的分类效果最为优良,而支持向量机、神经网络的分类则比较一般。
2.2.10 监督分类精度评估
在2.2.1节中笔者便已讲述过,这里可以使用测试数据集对监督分类后的结果进行精度评估,这里可以通过构建混淆矩阵来进行预测。在确保打开了测试数据集的情况下,依次点击【Classification】-【Post Classification】-【Generate Random Sample】-【Using Ground Truth ROIs】构建矩阵,并将选择分类图像选择为“Unclassified”,操作如图2.2-29所示。
图2.2-29 构建混淆矩阵
最后即可得到相应的混淆矩阵,不难发现应用二进制编码法的监督分类精度较低,只有66.7793%,显然这种监督分类是不理想的。
图2.2-30 混淆矩阵
2.2.11 图像分类结果分析
在图像分类部分,笔者使用了多种监督和非监督分类方法,并对结果进行了精度评估。以下是对分类结果的分析:
(1)非监督分类:
1.K-Means聚类:虽然能够大致区分地物类别,但由于植被和水体的光谱反射率相似,导致分类结果中这两类地物难以区分。
2.ISODATA:相较于K-Means,ISODATA分类结果更为优良,尤其是在植被和水体的分类上。
(2)监督分类:
平行管道法、最小距离法、马氏距离法、最大似然法、二进制编码法、支持向量机和神经网络:这些方法都需要预先设定的训练集,分类结果的准确性依赖于训练集的质量和代表性。其中,最小距离法的分类效果最为优良。
通过构建混淆矩阵,笔者对分类结果进行了精度评估。结果显示,二进制编码法的监督分类精度较低,这可能与其对地物特征的复杂性和多样性的敏感性有关。
综上所述,图像分类结果分析表明,不同的分类方法适用于不同的应用场景,且分类结果的准确性受到多种因素的影响,包括地物特征、训练集的选择和分类方法本身的特性。
3 实验总结
通过本次《遥感原理与应用》的上机实习二,我深入学习了ENVI软件在图像分割和分类方面的应用。实习内容包括对风景图、兰花图和娃娃图的图像分割操作,以及使用多种非监督和监督分类方法对影像数据进行分类,并进行了精度评估。
在图像分割方面,我掌握了如何利用直方图分析、波段运算和掩膜提取等技术来分离图像中的不同地物。这些技术在处理具有明显特征的图像时效果显著,但在处理特征不明显的图像时则需要更多的迭代和参数调整。
在图像分类方面,我学习了K-Means聚类、ISODATA、平行管道法、最小距离法、马氏距离法、最大似然法、二进制编码法、支持向量机和神经网络等多种分类方法。通过对比不同方法的分类结果,我认识到了每种方法的优缺点,并了解了如何根据具体的应用需求选择合适的分类方法。此外,通过构建混淆矩阵对分类结果进行精度评估,我学会了如何量化分类结果的准确性,并据此优化分类策略。
总体而言,本次实习不仅加深了我对遥感图像处理技术的理解,还提升了我的实际操作能力。通过亲身实践,我更加明确了在实际工作中如何根据不同的遥感影像和应用需求,选择合适的图像分割和分类方法,以及如何评估和优化分类结果。这些知识和技能将为我未来的学习和工作奠定坚实的基础。
4 参考资料
[1] 最全综述 | 图像分割算法-CSDN博客
[2] 机器学习入门(九):非监督学习:5种聚类算法+2种评估模型_聚类算法 c#-CSDN博客
[3] ENVI操作:监督分类_envi 按类别删除面roi-CSDN博客
[4] 基于ENVI的遥感影像的非监督分类_envi isodata-CSDN博客
图像分割操作文件位置:【免费】遥感图像处理分割源文件资源-CSDN文库
图像分类操作文件位置::【免费】遥感图像处理分类源文件资源-CSDN文库
相关文章:
遥感图像处理二(ENVI5.6 Classic)
1 实验目的和内容 1.1 实验目的 本次上机旨在继续深入了解ENVI软件的基本使用,并对提供的实验数据进行基本的图像分割和地物分类等操作并分析结果。 1.2 实验内容 1.2.1 图像分割 对教材示例数据“C7图像分割”中的风景图、兰花图和娃娃图分别进行图像分割操作…...
经典文献阅读之--A Fast Dynamic Point Detection...(用于驾驶场景中的动态点云剔除方法)
0. 简介 现有的基于3D点的动态点检测和移除方法存在显著的时间开销,使其难以适应激光雷达-惯性测程系统。《A Fast Dynamic Point Detection Method for LiDAR-Inertial Odometry in Driving Scenarios》提出了一种基于标签一致性的动态点检测和移除方法࿰…...
百度搜索应适用中文域名国家标准,修复中文网址展示BUG
12月1日中文域名国家标准正式实施。该标准“明确了中文域名在编码、解析、注册、字表等方面的技术要求,适用于中文域名注册管理机构、注册服务机构、网络软硬件服务商及终端用户”。 00:23 显然,百度作为网络软硬件服务商,是包括在国家标准的…...
设计模式学习之——适配器模式
适配器模式(Adapter Pattern),又称作变压器模式(因为这两者都体现了“转换”或“适配”的核心概念),是一种结构型设计模式。它将一个类的接口转换成客户端所期望的另一种接口,从而使得原本因接口…...
服务器数据恢复—热备盘上线过程中硬盘离线导致raid5阵列崩溃的数据恢复案例
服务器数据恢复环境: 两组分别由4块SAS接口硬盘组建的raid5阵列,两组raid5阵列划分LUN并由LVM管理,格式化为EXT3文件系统。 服务器故障: RAID5阵列中一块硬盘未知原因离线,热备盘自动激活上线替换离线硬盘。在热备盘上…...
MetaGPT源码 (Memory 类)
目录 MetaGPT源码:Memory 类例子 MetaGPT源码:Memory 类 这段代码定义了一个名为 Memory 的类,用于存储和管理消息(Message)对象。Memory 提供了多种操作消息的功能,包括添加单条或批量消息、按角色或内容筛选消息、删除最新消息…...
数据结构与算法复习AVL树插入过程
环境 $ cat /proc/version Linux version 6.8.0-45-generic (builddlcy02-amd64-115) (x86_64-linux-gnu-gcc-13 (Ubuntu 13.2.0-23ubuntu4) 13.2.0, GNU ld (GNU Binutils for Ubuntu) 2.42) #45-Ubuntu SMP PREEMPT_DYNAMIC Fri Aug 30 12:02:04 UTC 2024 #include <std…...
小迪笔记第 五十天 文件包含漏洞 远程包含 本地包含 ctf练习题实战
前言 文件包含漏洞 原理就是包含的文件如果可控就会造成这个漏洞 php文件包含的特征 : PHP:include、require、include_once、require_once等 一共是分为了2 种 一个就是 远程文件包含 这个的前提是php开启了 远程文件上传这个选项 原理应用就是…...
单片机:实现点阵汉字平滑滚动显示(附带源码)
单片机实现点阵汉字平滑滚动显示 点阵显示技术是嵌入式系统中的常见显示技术之一,广泛应用于LED矩阵显示屏、广告牌、电子时钟等设备。在本项目中,我们将实现一个基于单片机的点阵汉字平滑滚动显示系统,使用LED点阵显示屏来实现动态滚动的汉…...
C# 实现 10 位纯数字随机数
本文将介绍如何用 C# 实现一个生成 10 位纯数字随机数的功能。以下是完整的代码示例: using System; using System.Collections.Generic; using System.Linq; using System.Text;namespace RandomTset {class Program{// 使用GUID作为种子来创建随机数生成器static…...
分布式全文检索引擎ElasticSearch-基本概念介绍
一、索引类型 索引,可以理解是我们的目录,看一本书的时候,可以根据目录准确快速定位到某一页,那么索引就可以帮我们快速定位到某条数据在庞大的数据表的哪一个位置。 我们常见的索引包括正排索引和倒排索引 1、正排索引 正排索…...
电子应用设计方案-49:智能拖把系统方案设计
智能拖把系统方案设计 一、引言 随着人们生活水平的提高和对清洁效率的追求,智能拖把作为一种创新的清洁工具应运而生。本方案旨在设计一款功能强大、操作便捷、清洁效果出色的智能拖把系统。 二、系统概述 1. 系统目标 - 实现自动清洁地面,减轻用户劳…...
汽车免拆诊断案例 | 2014款保时捷卡宴车发动机偶尔无法起动
故障现象 一辆2014款保时捷卡宴车,搭载3.0T 发动机,累计行驶里程约为18万km。车主反映,发动机偶尔无法起动。 故障诊断 接车后试车,发动机起动及运转均正常。用故障检测仪检测,发动机控制单元(DME&#x…...
电脑怎么设置通电自动开机(工控机)
操作系统:win10 第一步,电脑开机时按del键进入bios页面。 第二步,选择advanced下的IT8712 Super IO Configuration 第三步,找到Auto Power On,将其从Power off设置为Power On 第四步,F10保存,大…...
MaxKB进阶:豆包大模型驱动的智能日报小助手
MaxKB进阶:豆包大模型驱动的智能日报小助手 说明: 在本教程中,我们通过“智能日报小助手”的应用场景,全面解析MaxKB的进阶功能:从如何接入公共大模型(以豆包为例),到函数功能的灵活…...
Python爬虫之使用xpath进行HTML Document文档的解析
响应有两种:JSON数据和HTML页面,对于后者就需要进行解析HTML Documen得到我们需要的信息。 ① xpath使用 可以提前安装xpath插件,也可以自己从HTML源码解析。 (1)打开chrome浏览器 (2)点击右…...
调度系统:使用 Airflow 对 Couchbase 执行 SQL 调度时的潜在问题
使用 Airflow 对 Couchbase 执行 SQL 调度时,通常情况下不会直接遇到与 Couchbase 分布式特性相关的异常,但在某些特定情境下,可能会出现一些与分布式环境、调度和数据一致性相关的潜在问题。以下是一些可能会遇到的问题和建议的解决方案&…...
【数据结构——查找】二分查找(头歌实践教学平台习题)【合集】
目录😋 任务描述 相关知识 测试说明 我的通关代码: 测试结果: 任务描述 本关任务:实现二分查找的算法。 相关知识 为了完成本关任务,你需要掌握:1.根据键盘输入的一组有序数据建立顺序表,2.顺序表的输…...
简单网页制作提升用户体验和客户转化
在当今竞争激烈的市场中,用户体验和客户转化率往往是决定企业成败的关键。简单而高效的网页制作,正是提升用户体验和客户转化的重要手段之一。 首先,简洁的网页设计能够有效减轻用户的认知负担。当用户打开一个层次分明、界面整洁的网站时&am…...
数据类型(使用与定义)
基本数据类型是CPU可以直接进行运算的类型,在算法直接被使用,主要包括: 整数类型:byte、short、int、long。 浮点数类型:float、double,用于表示小数。 字符类型:char,用于表示各种语言的字母…...
VMware:CentOS 7.* 连不上网络
1、修改网络适配 2、修改网卡配置参数 cd /etc/sysconfig/network-scripts/ vi ifcfg-e33# 修改 ONBOOTyes 3、重启网卡 service network restart 直接虚拟机中【ping 宿主机】,能PING通说明centOS和宿主机网络通了,只要宿主机有网,则 Ce…...
日志分析详解
文章目录 日志分析的概述日志分析的作用主要收集工具集中式日志系统主要特点采集日志分类ELK概述ELK收集日志的两种形式 搭建ELK平台安装部署docker添加镜像加速器安装部署Elasticsearch安装ElasticSearch-head(可选)运行容器页面无数据问题测试 安装Kib…...
【JavaWeb后端学习笔记】Maven项目管理
Maven 1、分模块设计2、Maven继承2.1 继承关系2.2 版本锁定 3、Maven聚合4、聚合与继承的关系 1、分模块设计 如果一个项目中含有大量的功能模块。可以考虑将这些功能分模块设计,逐一进行开发。例如将公共类可以定义在一个项目中,将通用工具类也放在一个…...
Docker--Docker Container(容器) 之 操作实例
容器的基本操作 容器的操作步骤其实很简单,根据拉取的镜像,进行启动,后可以查看容器,不用时停止容器,删除容器。 下面简单演示操作步骤 1.创建并运行容器 例如,创建一个名为"my-nginx"的交互…...
Android前端签到web迁移到rust的axum的过程-签到的重构
本次变更了以下内容: 为了使用之前ip2sta的ip到端点名的python,dic变量,将其存入redis hashset.使用地址/api/ip2dic 手动执行之.并且定义在/station/init,这个每天初始化redis的路径下.在rust axum的route中定义/sta/ip2dic,用来得到redis字典的内容,包含值和键.在前端的人名…...
用户认证系统登录界面
下面是使用HTML和JavaScript实现的一个中文版登录界面,包含登录、注册和修改密码功能。注册成功后会显示提示信息,在登录成功后进入一个大大的欢迎页面。 1.代码展示 <!DOCTYPE html> <html lang"zh-CN"> <head><meta …...
Redis从入门到进阶(总结)
以下内容均以CentOS7为背景。 一、Redis安装及启动 mysql(读:2000/s;写:600/s) redis(读:10w/s;写:8w/s)通过官方给出的数据单机并发可以达到10w/s…...
【D3.js in Action 3 精译_044】5.1 饼图和环形图的创建(四):数据标签的添加
当前内容所在位置: 第五章 饼图布局与堆叠布局 ✔️ 5.1 饼图和环形图的创建 ✔️ 5.1.1 准备阶段(一)5.1.2 饼图布局生成器(二)5.1.3 圆弧的绘制(三) ✔️5.1.4 数据标签的添加(四&…...
Linux的基本功能和命令
Linux的基本功能和命令 切换目录 pwd 查询当前目录地址 cd /xxx/xxx 转到目录 cd …/ 回到上一级目录 cd ./ 当前目录 创建、删除文件/文件夹 创建文件\文件夹 touch filename 创建空文件mkdir 创建目录 mkdir -p 目标目录存在也不报错mkdir -p xxx/xxx 递归创建目录…...
【Spark】Spark的两种核心Shuffle工作原理详解
Spark 的shuffle机制 一、Spark ShuffleManager 发展历程 Spark 1.1.0 之前 在 Spark 1.1.0 之前,Spark 使用 BlockStoreShuffleFetcher 来处理 Shuffle 操作。这个实现主要依赖于直接从 BlockManager 获取 Shuffle 数据,并通过网络进行交换。 Spark …...
开通网站必须做域名空间/seo培训中心
1.FastDFS介绍 FastDFS是用c语言编写的一款开源的分布式文件系统。FastDFS为互联网量身定制,充分考虑了冗余备份、负载均衡、线性扩容等机制,并注重高可用、高性能等指标,使用FastDFS很容易搭建一套高性能的文件服务器集群提供文件上传、下载…...
制作个人免费网站展示设计/武汉网优化seo公司
首先 下载并安装好网易MuMu模拟器: https://mumu.163.com/mac/index.html 运行网易MuMu,打开后在首页打开设置->开发者选项->打开USB调试模式 如果已经打包好的apk文件,则直接将apk文件拖动到模拟器窗口,apk会被自动安装 ADB connect 这里需要说明…...
重庆大渡口营销型网站建设公司推荐/怎么自己做个网站
PMP(Project Management Professional)是项目管理专业人士资格认证,是由美国国际认证协会(PMI)发起的严格评估项目管理人员知识技能是否具有高品质的资格认证考试。目前已在全球190多个国家和地区得到了认可࿰…...
北京网站建设 标准型 新翼/建设网页
分布式编程模型的背景 编程模型是指编程的方法而不是特指某一种编程语言,如面向对象的编程就是一种编程模型。编程模型大致分为两类:命令式编程和声明式编程。前者最典型的是面向过程的编程语言,如C语言;后者与前者差异较大&#…...
重庆网站建设零臻靠谱/无经验能做sem专员
目录 〇,最强大脑同款游戏 《第1-4季》 一,盲填数独 二,盲指过天桥 三,盲填折线数独 四,盲填骑士跳 五,七阶幻立方 六,泰森多边形 七,分形 八,数独王中王&…...
网站设计宽度/谷歌优化推广
运行Oracle 11g下的setup.exe 配置安全更新 安装选项 系统类 典型安装 检查系统条件 概要 安装 创建数据库 数据库口令管理 解锁Scott用户并设置密码,完成 连接(打开sql plus,或其他数据库管理工具,例如navicat) 关闭…...