【Deeplabv3+】Ubutu18.04中使用pytorch复现Deeplabv3+第三步)-----CityscapesScripts生成自己的标签

本文是在前面两篇文章的基础上,讲解如何更改训练数据集颜色,需要与前面两篇文章连起来看。

本文用于修改cityscapes数据集的标签颜色与Semankitti数据集的标签一致,对修改后的数据集进行训练。需要下载两个开发工具包和一个数据集,分别是cityscapesScripts-master、semantic-kitti-api-master和cityscapes数据集

  • cityscapesScripts是用于检查、准备和评估 Cityscapes 数据集的脚本。下载路径:

https://github.com/mcordts/cityscapesScripts

  •  cityscapes数据集需要注册登录才能下载,下载链接:

Login – Cityscapes Dataset

下载完成后,在cityscapesScripts-master中创建一个cityscapes文件夹,将下载好的两个文件分别放入其中,解压出来的说明文件直接删除即可,最终如下图:

  • semantic-kitti-api是用于打开、可视化、处理和评估 SemanticKITTI 数据集中的点云和标签结果的帮助程序脚本。下载路径:

https://github.com/PRBonn/semantic-kitti-api

一、制作标签步骤

1.1 更改标签颜色

进入目录cityscapesScripts-master\cityscapesscripts\helpers\labels.py中修改标签颜色与semantic-kitti-api-master\config\semanic-kitti.yaml中一致。注意:semantic-kitti-api-maste中的颜色是BGR颜色,cityscapesScripts中的颜色是RGB颜色,颠倒一下

cityscapesScripts-master\cityscapesscripts\helpers\labels.py标签:

semantic-kitti-api-master\config\semanic-kitti.yaml标签:

修改后的cityscapesScripts-master\cityscapesscripts\helpers\labels.py标签,可以直接拷贝使用:

labels = [#       name                     id    trainId   category            catId     hasInstances   ignoreInEval   colorLabel(  'unlabeled'            ,  0 ,      255 , 'void'            , 0       , False        , True         , (  0,  0,  0) ),Label(  'ego vehicle'          ,  1 ,      255 , 'void'            , 0       , False        , True         , (  0,  0,  0) ),Label(  'rectification border' ,  2 ,      255 , 'void'            , 0       , False        , True         , (  0,  0,  0) ),Label(  'out of roi'           ,  3 ,      255 , 'void'            , 0       , False        , True         , (  0,  0,  0) ),Label(  'static'               ,  4 ,      255 , 'void'            , 0       , False        , True         , (  0,  0,  0) ),Label(  'dynamic'              ,  5 ,      255 , 'void'            , 0       , False        , True         , (111, 74,  0) ),
# Label(  'ground'               ,  6 ,      255 , 'void'            , 0       , False        , True         , ( 81,  0, 81) ),Label(  'ground'               ,  6 ,      255 , 'void'            , 0       , False        , True         , ( 175,  0, 75) ),
# Label(  'road'                 ,  7 ,        0 , 'flat'            , 1       , False        , False        , (128, 64,128) ),Label(  'road'                 ,  7 ,        0 , 'flat'            , 1       , False        , False        , (255, 0,255) ),
# Label(  'sidewalk'             ,  8 ,        1 , 'flat'            , 1       , False        , False        , (244, 35,232) ),Label(  'sidewalk'             ,  8 ,        1 , 'flat'            , 1       , False        , False        , (75, 0,75) ),
# Label(  'parking'              ,  9 ,      255 , 'flat'            , 1       , False        , True         , (250,170,160) ),Label(  'parking'              ,  9 ,      255 , 'flat'            , 1       , False        , True         , (255,150,255) ),
# Label(  'rail track'           , 10 ,      255 , 'flat'            , 1       , False        , True         , (230,150,140) ),Label(  'rail track'           , 10 ,      255 , 'flat'            , 1       , False        , True         , (0,0,255) ),
# Label(  'building'             , 11 ,        2 , 'construction'    , 2       , False        , False        , ( 70, 70, 70) ),Label(  'building'             , 11 ,        2 , 'construction'    , 2       , False        , False        , ( 255, 200, 0) ),
# Label(  'wall'                 , 12 ,        3 , 'construction'    , 2       , False        , False        , (102,102,156) ),Label(  'wall'                 , 12 ,        3 , 'construction'    , 2       , False        , False        , (255,150,0) ),
# Label(  'fence'                , 13 ,        4 , 'construction'    , 2       , False        , False        , (190,153,153) ),Label(  'fence'                , 13 ,        4 , 'construction'    , 2       , False        , False        , (255,120,50) ),
# Label(  'guard rail'           , 14 ,      255 , 'construction'    , 2       , False        , True         , (180,165,180) ),Label(  'guard rail'           , 14 ,      255 , 'construction'    , 2       , False        , True         , (255,150,0) ),
# Label(  'bridge'               , 15 ,      255 , 'construction'    , 2       , False        , True         , (150,100,100) ),Label(  'bridge'               , 15 ,      255 , 'construction'    , 2       , False        , True         , (255,150,0) ),
# Label(  'tunnel'               , 16 ,      255 , 'construction'    , 2       , False        , True         , (150,120, 90) ),Label(  'tunnel'               , 16 ,      255 , 'construction'    , 2       , False        , True         , (255,150, 0) ),
# Label(  'pole'                 , 17 ,        5 , 'object'          , 3       , False        , False        , (153,153,153) ),Label(  'pole'                 , 17 ,        5 , 'object'          , 3       , False        , False        , (255,240,150) ),
# Label(  'polegroup'            , 18 ,      255 , 'object'          , 3       , False        , True         , (153,153,153) ),Label(  'polegroup'            , 18 ,      255 , 'object'          , 3       , False        , True         , (50,255,255) ),
# Label(  'traffic light'        , 19 ,        6 , 'object'          , 3       , False        , False        , (250,170, 30) ),Label(  'traffic light'        , 19 ,        6 , 'object'          , 3       , False        , False        , (50,255, 255) ),
# Label(  'traffic sign'         , 20 ,        7 , 'object'          , 3       , False        , False        , (220,220,  0) ),Label(  'traffic sign'         , 20 ,        7 , 'object'          , 3       , False        , False        , (255,0,  0) ),
# Label(  'vegetation'           , 21 ,        8 , 'nature'          , 4       , False        , False        , (107,142, 35) ),Label(  'vegetation'           , 21 ,        8 , 'nature'          , 4       , False        , False        , (0,175, 0) ),
# Label(  'terrain'              , 22 ,        9 , 'nature'          , 4       , False        , False        , (152,251,152) ),Label(  'terrain'              , 22 ,        9 , 'nature'          , 4       , False        , False        , (150,240,80) ),
# Label(  'sky'                  , 23 ,       10 , 'sky'             , 5       , False        , False        , ( 70,130,180) ),Label(  'sky'                  , 23 ,       10 , 'sky'             , 5       , False        , False        , ( 0,0,0) ),
# Label(  'person'               , 24 ,       11 , 'human'           , 6       , True         , False        , (220, 20, 60) ),Label(  'person'               , 24 ,       11 , 'human'           , 6       , True         , False        , (255, 30, 30) ),
# Label(  'rider'                , 25 ,       12 , 'human'           , 6       , True         , False        , (255,  0,  0) ),Label(  'rider'                , 25 ,       12 , 'human'           , 6       , True         , False        , (255,  40,  200) ),
# Label(  'car'                  , 26 ,       13 , 'vehicle'         , 7       , True         , False        , (  0,  0,142) ),Label(  'car'                  , 26 ,       13 , 'vehicle'         , 7       , True         , False        , (  100,  150,245) ),
# Label(  'truck'                , 27 ,       14 , 'vehicle'         , 7       , True         , False        , (  0,  0, 70) ),Label(  'truck'                , 27 ,       14 , 'vehicle'         , 7       , True         , False        , (  80,  30, 180) ),
# Label(  'bus'                  , 28 ,       15 , 'vehicle'         , 7       , True         , False        , (  0, 60,100) ),Label(  'bus'                  , 28 ,       15 , 'vehicle'         , 7       , True         , False        , (  100, 80,250) ),
# Label(  'caravan'              , 29 ,      255 , 'vehicle'         , 7       , True         , True         , (  0,  0, 90) ),Label(  'caravan'              , 29 ,      255 , 'vehicle'         , 7       , True         , True         , (  0,  0, 255) ),
# Label(  'trailer'              , 30 ,      255 , 'vehicle'         , 7       , True         , True         , (  0,  0,110) ),Label(  'trailer'              , 30 ,      255 , 'vehicle'         , 7       , True         , True         , (  0,  0,255) ),
# Label(  'train'                , 31 ,       16 , 'vehicle'         , 7       , True         , False        , (  0, 80,100) ),Label(  'train'                , 31 ,       16 , 'vehicle'         , 7       , True         , False        , (  0, 0,255) ),
# Label(  'motorcycle'           , 32 ,       17 , 'vehicle'         , 7       , True         , False        , (  0,  0,230) ),Label(  'motorcycle'           , 32 ,       17 , 'vehicle'         , 7       , True         , False        , (  30,  60,150) ),
# Label(  'bicycle'              , 33 ,       18 , 'vehicle'         , 7       , True         , False        , (119, 11, 32) ),Label(  'bicycle'              , 33 ,       18 , 'vehicle'         , 7       , True         , False        , (100, 230, 245) ),
# Label(  'license plate'        , -1 ,       -1 , 'vehicle'         , 7       , False        , True         , (  0,  0,142) ),Label(  'license plate'        , -1 ,       -1 , 'vehicle'         , 7       , False        , True         , (  0,  0,255) ),
]

1.2 生成训练标签

1.2.1 生成labelIds标签

进入目录:cityscapesScripts-master\cityscapesscripts\preparation中

运行下面代码:

 # 运行成功后会在cityscapes数据集中生成_labelTrainIds结尾的训练文件python  .\createTrainIdLabelImgs.py 

此时进入cityscapesScripts-master\cityscapes\gtFine\train中任何一个城市,会发现多了一个修改好的训练标签(gtFine中test、train和val中均多了一个训练标签,不一一展示):

2.2 生成instanceIds标签

进入目录:cityscapesScripts-master\cityscapesscripts\preparation中

运行下面代码

#  # 运行成功后会在cityscapes数据集中生成_instanceTrainIds结尾的训练文件
python .\createTrainIdInstanceImgs.py

此时进入cityscapesScripts-master\cityscapes\gtFine\train中任何一个城市,会发现多了一个另一个实例训练标签,(gtFine中test、train和val中均多了一个训练标签,不一一展示):

2.3 修改DeepLabV3Plus-Pytorch中datasets\cityscapes.py中RGB值

训练之前,修改datasets\cityscapes.py文件中标签RGB值与cityscapesScripts-master中一致,可直接使用:

修改好的标签代码如下:

CityscapesClass = namedtuple('CityscapesClass', ['name', 'id', 'train_id', 'category', 'category_id','has_instances', 'ignore_in_eval', 'color'])classes = [CityscapesClass('unlabeled',            0, 255, 'void', 0, False, True, (0, 0, 0)),CityscapesClass('ego vehicle',          1, 255, 'void', 0, False, True, (0, 0, 0)),CityscapesClass('rectification border', 2, 255, 'void', 0, False, True, (0, 0, 0)),CityscapesClass('out of roi',           3, 255, 'void', 0, False, True, (0, 0, 0)),CityscapesClass('static',               4, 255, 'void', 0, False, True, (0, 0, 0)),CityscapesClass('dynamic',              5, 255, 'void', 0, False, True, (111, 74, 0)),# CityscapesClass('ground',               6, 255, 'void', 0, False, True, (81, 0, 81)),CityscapesClass('ground',               6, 255, 'void', 0, False, True, (175, 0, 75)),# CityscapesClass('road',                 7, 0, 'flat', 1, False, False, (128, 64, 128)),CityscapesClass('road',                 7, 0, 'flat', 1, False, False, (255, 0, 255)),# CityscapesClass('sidewalk',             8, 1, 'flat', 1, False, False, (244, 35, 232)),CityscapesClass('sidewalk',             8, 1, 'flat', 1, False, False, (75, 0, 75)),# CityscapesClass('parking',              9, 255, 'flat', 1, False, True, (250, 170, 160)),CityscapesClass('parking',              9, 255, 'flat', 1, False, True, (255, 150, 255)),# CityscapesClass('rail track',           10, 255, 'flat', 1, False, True, (230, 150, 140)),CityscapesClass('rail track',           10, 255, 'flat', 1, False, True, (0, 0, 255)),# CityscapesClass('building',             11, 2, 'construction', 2, False, False, (70, 70, 70)),CityscapesClass('building',             11, 2, 'construction', 2, False, False, (255, 200, 0)),# CityscapesClass('wall',                 12, 3, 'construction', 2, False, False, (102, 102, 156)),CityscapesClass('wall',                 12, 3, 'construction', 2, False, False, (255, 150, 0)),# CityscapesClass('fence',                13, 4, 'construction', 2, False, False, (190, 153, 153)),CityscapesClass('fence',                13, 4, 'construction', 2, False, False, (255, 120, 50)),# CityscapesClass('guard rail',           14, 255, 'construction', 2, False, True, (180, 165, 180)),CityscapesClass('guard rail',           14, 255, 'construction', 2, False, True, (255, 150, 0)),# CityscapesClass('bridge',               15, 255, 'construction', 2, False, True, (150, 100, 100)),CityscapesClass('bridge',               15, 255, 'construction', 2, False, True, (255, 150, 0)),# CityscapesClass('tunnel',               16, 255, 'construction', 2, False, True, (150, 120, 90)),CityscapesClass('tunnel',               16, 255, 'construction', 2, False, True, (255, 150, 0)),# CityscapesClass('pole',                 17, 5, 'object', 3, False, False, (153, 153, 153)),CityscapesClass('pole',                 17, 5, 'object', 3, False, False, (255, 240, 150)),# CityscapesClass('polegroup',            18, 255, 'object', 3, False, True, (153, 153, 153)),CityscapesClass('polegroup',            18, 255, 'object', 3, False, True, (50, 255, 255)),# CityscapesClass('traffic light',        19, 6, 'object', 3, False, False, (250, 170, 30)),CityscapesClass('traffic light',        19, 6, 'object', 3, False, False, (50, 255, 255)),# CityscapesClass('traffic sign',         20, 7, 'object', 3, False, False, (220, 220, 0)),CityscapesClass('traffic sign',         20, 7, 'object', 3, False, False, (255, 0, 0)),# CityscapesClass('vegetation',           21, 8, 'nature', 4, False, False, (107, 142, 35)),CityscapesClass('vegetation',           21, 8, 'nature', 4, False, False, (0, 175, 0)),# CityscapesClass('terrain',              22, 9, 'nature', 4, False, False, (152, 251, 152)),CityscapesClass('terrain',              22, 9, 'nature', 4, False, False, (150, 240, 80)),# CityscapesClass('sky',                  23, 10, 'sky', 5, False, False, (70, 130, 180)),CityscapesClass('sky',                  23, 10, 'sky', 5, False, False, (0, 0, 0)),# CityscapesClass('person',               24, 11, 'human', 6, True, False, (220, 20, 60)),CityscapesClass('person',               24, 11, 'human', 6, True, False, (255, 30, 30)),# CityscapesClass('rider',                25, 12, 'human', 6, True, False, (255, 0, 0)),CityscapesClass('rider',                25, 12, 'human', 6, True, False, (255, 40, 200)),# CityscapesClass('car',                  26, 13, 'vehicle', 7, True, False, (0, 0, 142)),CityscapesClass('car',                  26, 13, 'vehicle', 7, True, False, (100, 150, 245)),# CityscapesClass('truck',                27, 14, 'vehicle', 7, True, False, (0, 0, 70)),CityscapesClass('truck',                27, 14, 'vehicle', 7, True, False, (80, 30, 180)),# CityscapesClass('bus',                  28, 15, 'vehicle', 7, True, False, (0, 60, 100)),CityscapesClass('bus',                  28, 15, 'vehicle', 7, True, False, (100, 80, 250)),# CityscapesClass('caravan',              29, 255, 'vehicle', 7, True, True, (0, 0, 90)),CityscapesClass('caravan',              29, 255, 'vehicle', 7, True, True, (0, 0, 255)),# CityscapesClass('trailer',              30, 255, 'vehicle', 7, True, True, (0, 0, 110)),CityscapesClass('trailer',              30, 255, 'vehicle', 7, True, True, (0, 0, 255)),# CityscapesClass('train',                31, 16, 'vehicle', 7, True, False, (0, 80, 100)),CityscapesClass('train',                31, 16, 'vehicle', 7, True, False, (0, 0, 255)),# CityscapesClass('motorcycle',           32, 17, 'vehicle', 7, True, False, (0, 0, 230)),CityscapesClass('motorcycle',           32, 17, 'vehicle', 7, True, False, (30, 60, 150)),# CityscapesClass('bicycle',              33, 18, 'vehicle', 7, True, False, (119, 11, 32)),CityscapesClass('bicycle',              33, 18, 'vehicle', 7, True, False, (100, 230, 245)),CityscapesClass('license plate',        -1, 255, 'vehicle', 7, False, True, (0, 0, 255)),]

更改完成后,在DeepLabV3Plus-Pytorch-master中训练,即可得到训练后的新结果:

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

WPF应用程序(.Net Framework 4.8) 国际化

1、新建两个资源字典文件zh-CN.xaml和en-US.xaml&#xff0c;分别存储中文模板和英文模板 (1) zh-CN.xaml <ResourceDictionary xmlns"http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x"http://schemas.microsoft.com/winfx/2006/xaml&q…

burp靶场--xss上篇【1-15】

burp靶场–xss https://portswigger.net/web-security/cross-site-scripting 1. 什么是xss: 跨站脚本 (XSS) 是一种通常出现在 Web 应用程序中的计算机安全漏洞。XSS 允许攻击者将恶意代码注入网站&#xff0c;然后在访问该网站的任何人的浏览器中执行该代码。这可能允许攻击…

鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之DataPanel组件

鸿蒙&#xff08;HarmonyOS&#xff09;项目方舟框架&#xff08;ArkUI&#xff09;之DataPanel组件 一、操作环境 操作系统: Windows 10 专业版、IDE:DevEco Studio 3.1、SDK:HarmonyOS 3.1 二、DataPanel组件 数据面板组件&#xff0c;用于将多个数据占比情况使用占比图进…

React、React Router、JSX 简单入门快速上手

React、React Router、JSX 简单入门快速上手 介绍特点 JSX使用js表达式渲染列表样式控制注意事项 入门脚手架创建react项目安装目录介绍入口文件解析 组件解析介绍函数式组件类组件 事件绑定注意点定义使用事件对象事件处理函数接收额外参数 组件状态状态的定义使用 组件通信父…

C# IP v4转地址·地名 高德

需求: IPv4地址转地址 如&#xff1a;输入14.197.150.014&#xff0c;输出河北省石家庄市 SDK: 目前使用SDK为高德地图WebAPI 高德地图开放平台https://lbs.amap.com/ 可个人开发者使用&#xff0c;不过有配额限制。 WebAPI 免费配额调整公告https://lbs.amap.com/news/…

动手学RAG:汽车知识问答

原文&#xff1a;动手学RAG&#xff1a;汽车知识问答 - 知乎 Part1 内容介绍 在自然语言处理领域&#xff0c;大型语言模型&#xff08;LLM&#xff09;如GPT-3、BERT等已经取得了显著的进展&#xff0c;它们能够生成连贯、自然的文本&#xff0c;回答问题&#xff0c;并执行…

网安文件包含漏洞

文件包含概念&#xff1a; 开发人员通常会把可重复使用的函数写到单个文件中&#xff0c;在使用某些函数时&#xff0c;直接调用此文件&#xff0c;而无需再次编写&#xff0c;这种调用文件的过程一般被称为包含。为了使代码更加灵活&#xff0c;通常会将被包含的文件设置为变…

Spring Boot 中使用 Spring MVC基础

Spring MVC基础 一、控制器 controller1.定制控制器的方法&#xff08;1&#xff09;接收请求&#xff08;2&#xff09;接收请求参数&#xff08;3&#xff09;返回值 二、模型 Modle三、视图 View四、总结 Spring MVC 是非常著名的 Web 应用框架&#xff0c;现在的大多数 Web…

Mac安装及配置MySql及图形化工具MySQLworkbench安装

Mac下载配置MySql mysql下载及安装 下载地址&#xff1a;https://dev.mysql.com/downloads/mysql/ 根据自己电脑确定下载x86还是ARM版本的 如果不确定&#xff0c;可以查看自己电脑版本&#xff0c;终端输入命令 uname -a 点击Download下载&#xff0c;可跳过登录注册&…

Tensorflow2.0笔记 - Tensor的限值clip操作

本笔记主要记录使用maximum/minimum,clip_by_value和clip_by_norm来进行张量值的限值操作。 import tensorflow as tf import numpy as nptf.__version__#maximum/minimumz做上下界的限值 tensor tf.random.shuffle(tf.range(10)) print(tensor)#maximum(x, y, nameNone) #对…

Qt6入门教程 14:QToolButton

目录 一.简介 二.常用接口 1.void setMenu(QMenu * menu) 2.void setPopupMode(ToolButtonPopupMode mode) 3.void setToolButtonStyle(Qt::ToolButtonStyle style) 4.void setArrowType(Qt::ArrowType type) 5.void setDefaultAction(QAction * action) 三.实战演练 1…

基于Prompt Learning的信息抽取

PTR: Prompt Tuning with Rules for Text Classification 清华&#xff1b;liuzhiyuan&#xff1b;通过规则制定subpromptRelation Extraction as Open-book Examination: Retrieval-enhanced Prompt Tuning Relation Extraction as Open-book Examination: Retrieval-enhance…

spring boot 使用 Kafka

一、Kafka作为消息队列的好处 高吞吐量&#xff1a;Kafka能够处理大规模的数据流&#xff0c;并支持高吞吐量的消息传输。 持久性&#xff1a;Kafka将消息持久化到磁盘上&#xff0c;保证了消息不会因为系统故障而丢失。 分布式&#xff1a;Kafka是一个分布式系统&#xff0c…

比Filebeat更强大的日志收集工具-Fluent bit的http插件实战

文章目录 1.前言2. fluent bit http插件配置以及参数详解3. Http 接口服务3.1 开发Http 接口服务3.2 重启fluent bit向http web服务发送数据 1.前言 Fluent Bit 的 HTTP 插件提供了一种灵活而通用的机制&#xff0c;可用于将日志数据 从各种环境中传输到指定的远程服务器&#…

C++核心编程:类和对象 笔记

4.类和对象 C面向对象的三大特性为:封装,继承,多态C认为万事万物都皆为对象&#xff0c;对象上有其属性和行为 例如&#xff1a; 人可以作为对象&#xff0c;属性有姓名、年龄、身高、体重...,行为有走、跑、跳、说话...车可以作为对象&#xff0c;属性有轮胎、方向盘、车灯…

力扣hot100 子集 回溯 超简洁

Problem: 78. 子集 文章目录 思路复杂度Code 思路 &#x1f468;‍&#x1f3eb; 参考题解 复杂度 时间复杂度: 添加时间复杂度, 示例&#xff1a; O ( n ) O(n) O(n) 空间复杂度: 添加空间复杂度, 示例&#xff1a; O ( n ) O(n) O(n) Code class Solution {List<Li…

设计模式之框架源码剖析(实战+图解)

Java设计模式 1&#xff0c;概述 随着软件开发人员人数的增多&#xff0c;一些公司急需一些高端人才。作为一个高端人才&#xff0c;设计面向对象软件是必不可少的能力&#xff0c;而软件设计是需要很深的功力&#xff0c;设计模式就要求你必须掌握。 2&#xff0c;本章特色…

[GN] 设计模式——面向对象设计原则概述

文章目录 面向对象设计原则概述单一职责原则开闭原则里氏代换原则依赖倒转原则接口隔离原则合成复用原则迪米特法则 总结 提示&#xff1a;以下是本篇文章正文内容&#xff0c;下面案例可供参考 面向对象设计原则概述 单一职责原则 一个类只负责一个功能领域中的相应职责 类…

C#,数据检索算法之三元搜索(Ternary Search)的源代码

数据检索算法是指从数据集合&#xff08;数组、表、哈希表等&#xff09;中检索指定的数据项。 数据检索算法是所有算法的基础算法之一。 本文发布 三元搜索&#xff08;Ternary Search&#xff09;的源代码。 1 文本格式 using System; namespace Legalsoft.Truffer.Algo…

【Java异常处理与try-catch-finally】

Java异常处理与try-catch-finally try块是被监视的代码块&#xff0c;可能会发生异常的地方。当try块中的代码抛出了异常&#xff0c;程序会立即转入catch块&#xff0c;catch块根据捕获的异常类型进行处理。 Java异常处理是一种机制&#xff0c;用于捕获并处理在程序执行过程中…