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

遥感卫星影像处理流程

当空中的遥感卫星获取了地球数字影像,并传回地面,是否工作就结束了?答案显然是否定的,相反,这正是遥感数字图像处理工作的开始

遥感数字图像(Digital image,后简称“遥感影像”)是数字形式的遥感图像,地球表面不同区域和地物能够反射或辐射不同波长的电磁波,利用这种特性,遥感系统可以产生不同的遥感数字图像。

图片

遥感卫星工作原理 | 图:NOAA

让其与一般的数字图像,也就是我们平时拍摄的电子照片拉开距离的,是遥感影像的成像范围与精细度。遥感卫星的摄影区域是地球级的宏观维度,影像中的每个像素都对应着三维真实世界中的某几个、某个或某部分地物实体,根据卫星成像分辨率的不同,其中一个像素就有可能是一棵树、一辆车或是一幢大楼的某个窗户。

所以,图像每个像素点的亮度值(DN值,Digital Number)都有着重要的信息意义,要获取其中的准确信息,用户需要根据自身应用目标,对卫星影像中的像素进行管理、转换、校正、增强、提取一系列的“神操作”,便于后续深入挖掘与业务融合应用。

DN值(Digital Number ):遥感影像像元亮度值,记录地物的灰度值。无单位,是一个整数值,值大小与传感器的辐射分辨率、地物发射率、大气透过率和散射率等相关,反映地物的辐射率(Radiance)。

我们可以回到“P图界”进行比喻,为了让自己的社交媒体形象更加完美,我们打开某图秀秀软件,美白、瘦身、磨皮、祛痘....当然,遥感影像的数据处理复杂专业多了,到什么地步呢?它可以被写成一本教科书 ——

图片

今天,我们就来了解一下,这其中到底有哪些“神操作”,又如何应用?以及在遥感产业飞速发展的今天,高频的数据产出、算法和人工智能的冲击,会否让这些“神操作”的传统模式和底层逻辑,发生变革?

01

什么是遥感影像处理?

遥感影像处理,是利用计算机图像处理系统遥感图像中的像素进行系列操作的过程。

遥感影像中包含着很多信息,通过数字化(成像系统的采样和量化、数字存储)后,才能有效地进行信息分析和内容提取。在此基础上,对影像数据进行处理“再加工”,如校正图形对齐坐标、增强地物轮廓,能够极大地提升图像处理的精度和信息提取的效率,这个过程都可以称为“遥感数字图像处理”。

图片

遥感与图像处理 | 图源:《遥感数字图像处理教程》,重制:超擎时空

作为“对地观测”过程的一个基本而重要的组成部分,在卫星应用产业链中,遥感影像处理环节处于中下游、承前启后的重要位置,前端承接卫星地面设施,后端面向农林、气象、自然资源等行业具体的业务应用,提供“就绪”的数据服务或工具。

02

为什么遥感影像处理是应用的“必经之路”?

在我们看到整齐美观的谷歌地球这类数字地球产品,或是遥感卫星应用在自然资源管理、环保、农业、气象等领域的专题图或解译图,都需要经过影像处理的中间“洗礼”。

因为遥感卫星在高空“作业”,其成像环境复杂程度远远超越我们日常地面的拍照环境,会遇到传感器不稳定,地球曲率、大气条件、光照变化、地形变化等系统与非系统因素造成的图形几何变形、失真、模糊、噪点等。遥感数据中心对图像进行去除条带、几何粗校正等初步处理,数据到达各终端用户手中时,还需要对数据做进一步的精细处理,使其更加接近真实世界的实体空间环境与坐标,并根据其自身业务分析目标,进行专业处理,为接下来的遥感影像分析、解译、业务应用做好准备。

总的来说,遥感影像处理的主要目标为以下三点:

图像校正:恢复、复原图像。在进行信息提取前,必须对遥感图像进行校正处理,以使影像能够正确地反映实际地物信息或物理过程。

图像增强:压抑或去除图像噪声。为使遥感图像所包含的地物信息可读性更强,感兴趣目标更突出、容易理解和判读,需要对整体图像或特定地物信息进行增强处理。

信息提取:根据地物光谱特征和几何特征,确定不同地物信息的提取规则,在此基础上,利用该规则从校正后的遥感数据中提取各种有用的地物信息。

03

遥感数据处理有哪些功能?

完整的遥感数字图像处理包含了硬件系统和软件系统两大部分,遥感数据存储量庞大,需要大容量数字存储设备与软件共同配合存储处理,这里主要介绍软件处理部分。下面展示的是一个专业的图像处理软件界面,与常用的办公软件相比,图像处理系统的各个功能显得比较分散,各个菜单之间的联系不紧密。

图片

使用ENVI遥感图像处理软件进行图像镶嵌,界面右侧为工具箱(toolbox) | 图:常陈一 @B站

从某种意义上看,图像处理系统更像一个图像处理综合工具箱,由于图像处理目标不同,用户可以调用某个功能、某几项功能的组合,并非所有流程都选用。这里将一些典型的处理功能进行归纳,并对基础步骤进行介绍。

  • 数据存储与管理:由不同传感器获得的不同图像数据的存储管理、读取显示、转换输出。

  • 图像预处理:辐射校正、几何校正、图像配准、大气校正..

  • 图像增强与转换:图像融合、图像增强处理、色彩合成、密度分割、图像裁剪、镶嵌匀色..

  • 分类与特征提取:统计分析、特征提取、图像分类(监督分类、非监督分类)、专题制图、专业工具(高光谱、雷达、地形等图像处理)..

数字存储与管理

遥感影像本身内存较大,1景7波段的landsat遥感影像至少有200MB,而高光谱影像可能达到1GB;而进入时间与空间双重高分时代以来,数据高频产出与累积,也促使遥感进入大数据时代,让遥感云服务、存储管理、快速分发共享趋势愈加明显。基于私有云、混合云的遥感影像数字存储、在线更新、管理检索、发布浏览,已经逐步成为与遥感数据处理不可分割的重要基础,并将大幅度提升后续遥感影像专业处理与业务应用效率。

图片

大规模遥感数据汇聚、管理、存储、分发系统 | 超擎

影像预处理

辐射校正(Radiometric Correction)

图片

辐射校正前后 | 图:网络

指对由于外界因素,数据获取和传输系统产生的系统的、随机的辐射失真或畸变进行的校正,消除或改正因辐射误差而引起影像畸变的过程。

简单概括,就是去除传感器或大气“噪声”,更准确地表示地面条件,提高图像的“保真度”,主要是恢复数据缺失、去除薄雾,或为镶嵌和变化监测做好准备。

图片

辐射校正在动态监测中的作用:在多时相遥感图像中,除了地物的变化会引起图像中辐射值的变化外,不变的地物在不同时相图像中的辐射值也会有差异。如果需要利用多时相遥感图像的光谱信息对地物变化状况进行动态监测,首要消除不变地物的辐射值差异。

通过相对辐射校正,将一图像作为参考(或基准)图像,调整另一图像的DN值,使得两时相图像上同名的地物具有相同的DN值,这个过程也叫多时相遥感图像的光谱归一化。这样就可以通过分析不同时相遥感图像上的辐射值差异来实现变化监测,从而完成地物动态变化的遥感动态监测

图片

辐射校正一致的多时相遥感影像,很好地反映中国西部地区绿化进程 | Google

几何校正(Geometric correction)

图片

几何校正前

几何校正后

遥感成像过程中,因摄影材料变形、物镜畸变、大气折光、地球曲率、地球自转、地形起伏等因素导致的综合影响,原始图像上地物的几何位置、形状、大小、尺寸、方位等特征与其对应的地面地物的特征往往是不一致的,这种不一致为几何变形,也称几何畸变。几何校正就是通过一系列的数学模型来改正和消除这种几何畸变,使其定位准确。

图片

几何校正原理示意:真实世界的地形是立体而凹凸不平的,但遥感卫星传感器只能获取平面二维像素,这就带来了地形扭曲 | 图源:网络;重制图:超擎时空

图像增强

图像对比度增强(Image Contrast Enhancement)

图片

直方图拉伸前

图片

直方图拉伸后

统计每幅图像的各亮度的像元数而得到的随机分布图,即为该幅图像的直方图。 一般来说,包含大量像元的图像,像元的亮度随机分布应是正态分布。直方图为非正态分布,说明图像的亮度分布偏亮、偏暗或亮度过于集中,图像的对比度小,需要调整该直方图到正态分布,以改善图像的质量,并便于分辨地物轮廓并提取信息。

彩色合成

图片

真彩色合成

图片

假彩色合成

为了充分利用色彩在遥感图像判读和信息提取中的优势,常利用彩色合成的方法对多光谱图像进行处理,以得到彩色图像。如上图,彩色图像可以分为真彩色图像和假彩色图像。

密度分割

图片

原始图像

图片

密度分割图像

将灰度图像按照像元的灰度值进行分级,再分级赋以不同的颜色,使原有灰度图像变成伪彩色图像,达到图像增强的目的。

图像运算

图片

原始图像

图片

NDVI植被指数图像

两幅或多幅单波段图像,空间配准后可进行算术运算,实现图像的增强。根据地物在不同波段的灰度差异,通过不同波段的代数运算产生新的“波段”,常见的有加法运算、减法运算、比值运算和综合运算,如: 

减法运算:可突现出两波段差值大的地物,如红外-红,可突现植被信息。 
比值运算:常用于计算植被指数、消除地形阴影等。 
植被指数:NDVI=(IR-R)/(IR+R)

图像融合

图片

多光谱影像

图片

高分辨率影像

图片

融合影像(HSV融合)

遥感图像信息融合是有效提升图像分辨率与信息量的手段,将多源遥感数据在统一的地理坐标系中,采用一定的算法生成一组新的信息或合成图像的过程。

不同的遥感数据具有不同的空间分辨率、波谱分辨率和时相分辨率,将低分辨率的多光谱影像与高分辨率的单波段影像重采样生成一副高分辨率多光谱影像遥感的图像处理技术,使得处理后的影像既有较高的空间分辨率,又具有多光谱特征。

图像裁剪

图片

原始图像

图片

按行政区域裁剪(ROI)

图片

按地理图像裁剪

在遥感实际应用中,用户可能只对遥感影像中的一个特定的范围内的信息感兴趣,这就需要将遥感影像裁减成研究范围的大小。常用的裁剪方式有,按ROI(兴趣区域)裁剪、按文件裁剪(按照指定影像文件的范围大小)、按地图裁剪(根据地图的地理坐标或经纬度的范围)。

图像镶嵌

图片

镶嵌左影像

图片

镶嵌右影像

图片

镶嵌结果影像

也叫图像拼接,是将两幅或多幅数字影像(它们有可能是在不同的摄影条件下获取的)拼在一起,构成一幅整体图像的技术过程。 通常是先对每幅图像进行几何校正,将它们规划到统一的坐标系中,然后对它们进行裁剪,去掉重叠的部分,再将裁剪后的多幅影像装配起来形成一幅大幅面的影像。

镶嵌匀色

图片

匀色前影像

图片

匀色后影像

将灰度图像按照像元的灰度值进行分级,再分级赋以不同的颜色,使原有灰度图像变成伪彩色图像,达到图像增强的目的。

信息提取

遥感图像中目标地物的特征是地物电磁波的辐射差异在遥感影像上的反映。依据遥感图像上的地物特征,识别地物类型、性质、空间位置、形状、大小等属性的过程即为遥感信息提取。

目视判读

图片

人工解译水系

也叫人工解译,即用人工肉眼与经验判读遥感影像,对遥感影像上目标地物的范围进行手工勾绘,达到信息提取的目的。人工解译为传统常用的信息提取办法,但在海量影像下判读分析效率相对低。

图像分类

是依据是地物的光谱特征,确定判别函数和相应的判别准则,将图像所有的像元按性质分为若干类别的过程,主要方式分为监督分类与非监督分类。

- 监督分类

图片

原图像

图片

监督分类图像

监督分类是在分类前人们已对遥感影像样本区中的类别属性有了先验知识,进而可利用这些样本类别的特征作为依据建立和训练分类器(亦即建立判别函数),进而完成整幅影像的类型划分,将每个像元归并到相对应的一个类别中去。

监督分类也是目前遥感AI最为常见的应用方式,即通过样本库,用机器学习对特定地物进行分类、标注或识别。

- 非监督分类

非监督分类也称聚类分析,是指人们事先对分类过程不施加任何的先验知识,而仅凭数据(遥感影像地物的光谱特征的分布规律)、即自然聚类的特性进行“盲目”的分类;是以集群为理论基础,通过计算机对图像进行集聚统计分析的方法,是模式识别的一种方法。一般算法有:回归分析、趋势分析、等混合距离法、集群分析、主成分分析和图形识别等。

监督分类和非监督分类的区别:有监督必须有训练集与测试样本。在训练集中找规律,而对测试样本使用这种规律;非监督没有训练集,只有一组数据,在该组数据集内寻找规律。

04

遥感数据处理正在发生怎样的改变?

遥感数据处理更像是生产制造中的“原材料粗加工”环节,也是遥感影像数据智能应用和业务融合的前序手段,从前文的介绍来看,其过程也是较为复杂和专业的。

作为对地观测和遥感产业化的重要组成部分,位于产业中下游的遥感数据处理,也受到了大数据时代的冲击,正在响应这一趋势并发生变革,走向实时化、标准化、规模化、自动化

在企业数字化转型中,人们常说的一句话是,所有传统产业都值得用数字化再做一遍,在传统的数据生产、信息服务产业也是如此,其模式和流程都值得用算法和AI再做一遍。

当算法与人工智能逐步渗透遥感数据处理这个环节,能够解决遥感产业数据生产服务中的很多难题,例如数据分发周期与链路长,处理环节多,海量数据处理的精准、一致性等问题,这我们可以将其视为“自动化批量处理”。

当中游算法引擎解决了数据服务和数据计算效率和自动化流程的问题后,下游也将出现更多适用于各种垂直细分场景的精细化应用数据产品,而在以上介绍的遥感影像信息提取环节,有了AI和算法的参与,也出现很多高效的自动化功能,如目标识别、地物提取、地物分类、变化检测等,逐步帮助人类提高解译的效率,形成遥感产业下游的“智能化信息挖掘”机制。

我们可以看到,从遥感数据获取源头,到数据处理,到终端应用,其效率与底层数据模式密不可分,在卫星互联网和对地观测星座逐步构建成型的趋势下,只有将数据的获取、处理和共享流程标准化,大规模、自动化、流水化的遥感产业才能更好地地为政企数字化转型发挥动能,也真正地迎来时空大数据时代。

参考资料

《遥感数字影像处理教程》韦玉春 汤国安 杨昕 编著

王大王博客 遥感图像处理流程(以上较多处理样例图片来源) https://www.cnblogs.com/xiaowangba/archive/2013/04/03/6313968.html

相关文章:

遥感卫星影像处理流程

当空中的遥感卫星获取了地球数字影像,并传回地面,是否工作就结束了?答案显然是否定的,相反,这正是遥感数字图像处理工作的开始。 遥感数字图像(Digital image,后简称“遥感影像”)是…...

【AR开发-开源框架】使用Sceneform-EQR快速开发AR应用,当前接入了AREngine、ORB-SLAM,可快速地适配不同的安卓设备

Sceneform-EQR Sceneform 概览 Sceneform是一个3D框架,具有基于物理的渲染器,针对移动设备进行了优化,使您可以轻松构建增强现实应用程序,而无需OpenGL。 借助 Sceneform,您可以轻松地在 AR 应用和非 AR 应用中渲染…...

学生信息管理系统C++

设计目的 使学生进一步理解和掌握课堂上所学的面向对象C编程知识,巩固和加深学生对C面向对象课程的基本知识的理解和掌握。掌握C面向对象编程和程序调试的基本技能,学会利用C语言进行基本的软件设计,着重提高运用C面向对象语言解决实际问题的…...

前端开发三大主流框架解析

Web前端三大主流框架分别是Angular、React和Vue.js。以下是《优联前端》关于这三个框架解析介绍: Angular: 来源与开发者:Angular是由Google开发的前端框架。功能特点:Angular是一个完整的框架,包括了数据绑定、组件化…...

【2.文件和目录相关(下)】

一、查看文件内容命令 1、cat 文件名:用于显示文件内容,比如 cat test.c。 (1)cat -b test.c 表示加行号显示文件内容。 (2)cat -s test.c 表示多个空行合并成一个空行显示。 2、nl 文件名:…...

【C语言】结构体与内存对齐

前言 在本篇博客,我将介绍结构体类型,结构体变量的创建和初始化,重点介绍结构中存在的内存对齐。 结构变量 结构是一些值的集合,这些值被称为成员变量。结构的每个成员可以是不同类型的变量。 在理解结构的时候,我们…...

【机器学习】之 kmean算法原理及实现

基本概念 K-Means 聚类算法的目标是将数据集分成 ( K ) 个簇,使得每个簇内的数据点尽可能相似,而簇与簇之间尽可能不同。这种相似度是通过计算数据点与簇中心的距离来衡量的。 算法步骤 选择簇的数量 ( K ):随机选择 ( K ) 个数据点作为初…...

国产高边驱动HD70202Q替换英飞凌BTS7040-2

高边驱动也称之为高边开关,主要用于车内负载的驱动与开关,并对负载进行保护和诊断。高边驱动以高可靠性、灵活性、低功耗以及小型轻量等特点,正逐渐替代传统的保险丝、继电器等方案。 RAMSUN提供的HD70202Q车规级双通道智能高边驱动的输入控…...

2024年06月在线IDE流行度最新排名

点击查看最新在线IDE流行度最新排名(每月更新) 2024年06月在线IDE流行度最新排名 TOP 在线IDE排名是通过分析在线ide名称在谷歌上被搜索的频率而创建的 在线IDE被搜索的次数越多,人们就会认为它越受欢迎。原始数据来自谷歌Trends 如果您相…...

顺序表和链表基础操作的复习

顺序表 #include<iostream> using namespace std; 静态 //#define MAX_SIZE 50 //typedef int ElemType; //typedef struct //{ // int length; // ElemType nums[MAX_SIZE]; //}Sqlist; //动态: #define Init_SIZE 50 typedef int ElemType; typedef struct {int lengt…...

[C#]winform部署官方yolov10目标检测的onnx模型

【框架地址】 https://github.com/THU-MIG/yolov10 【算法介绍】 今天为大家介绍的是 YOLOv10&#xff0c;这是由清华大学研究团队最新提出的&#xff0c;同样遵循 YOLO 系列设计原则&#xff0c;致力于打造实时端到端的高性能目标检测器。 方法 创新 双标签分配策略 众所…...

hmcode硬件编程1

在/home/golemon/hmcode/applications/sample/wifi-iot/app内创建文件夹。 这里创建了d_6_3文件夹 . ├── BUILD.gn ├── d_6_3 │ ├── BUILD.gn │ └── lab.c ├── demolink │ ├── BUILD.gn │ └── helloworld.c ├── iothardware │ ├── B…...

[C++][CMake] set_target_properties called with incorrect number of arguments

1 简介 这篇文章将探讨了在使用CMake构建C项目时&#xff0c;调用set_target_properties函数时参数数量不正确所引发的问题。 2 错误案例 以下为可能发生错误的案例 include_directories (${CMAKE_SOURCE_DIR}/common) find_package(Threads)add_library (libusbmuxd SHARE…...

AdamW算法

AdamW算法是优化算法Adam的一个变体&#xff0c;它在深度学习中广泛应用。AdamW的主要改进在于它正则化方法的改变&#xff0c;即通过权重衰减&#xff08;weight decay&#xff09;而不是L2正则化&#xff0c;来控制模型参数的大小&#xff0c;从而提升了训练的稳定性和效果。…...

【c++进阶(二)】STL之string类的模拟实现

&#x1f493;博主CSDN主页:Am心若依旧&#x1f493; ⏩专栏分类c从入门到精通⏪ &#x1f69a;代码仓库:青酒余成&#x1f69a; &#x1f339;关注我&#x1faf5;带你学习更多c   &#x1f51d;&#x1f51d; 1.前言 本章重点 本章主要介绍一些关键接口的模拟实现&#xff…...

PHPStudy(xp 小皮)V8.1.1 通过cmd进入MySQL命令行模式

PHPStudy是一个PHP开发环境集成包&#xff0c;可用在本地电脑或者服务器上&#xff0c;该程序包集成最新的PHP/MySql/Apache/Nginx/Redis/FTP/Composer&#xff0c;一次性安装&#xff0c;无须配置即可使用。MySQL MySQL是一个关系型数据库管理系统&#xff0c;由瑞典 MySQL A…...

php反序列化初步了解

一、定义 序列化&#xff08;串行化&#xff09;&#xff1a;将变量转换为可保存或传输的字符串的过程&#xff08;通常是字节流、JSON、XML格式&#xff09; 反序列比&#xff08;反串行化&#xff09;&#xff1a;把这个字符串再转化成原始数据结构或对象&#xff08;原来的…...

Windows系统电脑本地部署AI音乐创作工具并实现无公网IP远程使用

文章目录 前言1. 本地部署2. 使用方法介绍3. 内网穿透工具下载安装4. 配置公网地址5. 配置固定公网地址 前言 本文主要介绍如何在Windows系统电脑上快速本地部署一个文字生成音乐的AI创作工具MusicGPT&#xff0c;并结合cpolar内网穿透工具实现随时随地远程访问使用。 MusicG…...

玩转Linux进度条

准备工作&#xff1a; 一.关于缓冲区 首先&#xff0c;咱们先来一段有意思的代码&#xff1a; #include<stdio.h> #include<unistd.h> int main() {printf("you can see me");sleep(5);} 你可以在你的本地运行一下&#xff0c;这里我告诉大家运行结果…...

真国色码上赞,科技流量双剑合璧,商家获客新纪元开启

在数字化浪潮汹涌的今天,真国色研发团队依托红玉房网络科技公司的雄厚实力,凭借科技领先的核心竞争力,推出了创新性的商家曝光引流工具——码上赞。这款工具借助微信支付与视频号已有功能,为实体商家提供了一种全新的引流获客方式,实现了科技与商业的完美融合。 科技领先,流量黑…...

C++:特殊类设计和四种类型转换

一、特殊类设计 1.1 不能被拷贝的类 拷贝只会放生在两个场景中&#xff1a;拷贝构造函数以及赋值运算符重载&#xff0c;因此想要让一个类禁止拷贝&#xff0c;只需让该类不能调用拷贝构造函数以及赋值运算符重载即可。 C98&#xff1a; 1、将拷贝构造函数与赋值运算符重载只…...

(南京观海微电子)——屏幕材质及优缺点对比

LED/LCD LCD&#xff08;Liquid Crystal Ddisplay&#xff09;即“液晶显示器”&#xff0c;由两块偏光镜、两块薄膜晶体管以及彩色滤光片、光源&#xff08;荧光灯&#xff09;、显示面板组成的成像元器件。 LED&#xff08;Light Emitting Diode&#xff09;即“发光二极管…...

uniapp uni.showModal 出现点击没有反应

uni.showModal 里面有好些参数 点击后不弹出 是因为 出现了 null 或者undifind 字符 特别是content 里面 title: 提示, cancelColor: #000000, editable: true,//是否显示输入框 content: item.text?item.te…...

Vue3-VueRouter

客户端 vs. 服务端路由​ 服务端路由指的是服务器根据用户访问的 URL 路径返回不同的响应结果。当我们在一个传统的服务端渲染的 web 应用中点击一个链接时&#xff0c;浏览器会从服务端获得全新的 HTML&#xff0c;然后重新加载整个页面。 然而&#xff0c;在单页面应用中&a…...

【图像处理与机器视觉】频率域滤波

知识铺垫 复数 CRjI 可以看作复平面上的点&#xff0c;则该复数的坐标为&#xff08;R&#xff0c;I&#xff09; 欧拉公式 e j θ c o s θ j s i n θ e^{j\theta} cos \theta j sin \theta ejθcosθjsinθ 极坐标系中复数可以表示为&#xff1a; C ∣ C ∣ ( c o s…...

python第五次作业

1.请实现一个装饰器&#xff0c;每次调用函数时&#xff0c;将函数名字以及调用此函数的时间点写入文件中 # 导入datetime模块&#xff0c;用于获取当前时间并格式化输出 import datetime# 定义一个装饰器工厂函数log_funcName_time&#xff0c;它接受一个参数time def log_fu…...

JS面向对象编程

目录 实例对象与new命令this关键字对象的原型和继承Object对象的相关方法浅拷贝和深拷贝严格模式实例对象与new命令 构造函数 构造函数的特点有两个: 函数体内部使用了this关键字,代表了所要生成的对象实例。生成对象的时候,必须使用new命令。var Vehicle...

kotlin1.8.10问题导致gson报错TypeToken type argument must not contain a type variable

书接上回&#xff0c;https://blog.csdn.net/jzlhll123/article/details/139302991。 之前我发现gson报错后&#xff1a; gson在2.11.0给我的kotlin项目代码报错了。 IllegalArgumentException: TypeToken type argument must not contain a type variable 上次解释原因是因为&…...

数据库漫谈-国产数据库

国产数据库突然大量出现&#xff0c;下表列出&#xff08;按首字母排序 &#xff09; AISWare AntDB&#xff0c;亚信科技。 AliSQL&#xff0c;阿里云。 Analyticdb&#xff0c;阿里云。 ArkDB&#xff0c;北京极数云舟科技有限公司。 CynosDB&#xff0c;腾讯云 DM&…...

小白跟做江科大32单片机之光敏传感器控制蜂鸣器

代码部分 1.思路 通过光敏电阻&#xff0c;控制蜂鸣器的发声 2.butter.h代码 #ifndef _BUTTER__H #define _BUTTER__H void butter_Init(void); void butter_on(void); void butter_off(void); #endif 3.butter.c代码 #include "stm32f10x.h" void butter…...