遥感数字图像处理
遥感数字图像处理
来源:慕课北京师范大学朱文泉老师的课程
遥感应用:遥感制图、信息提取
短期内了解知识结构–>有选择的剖析经典算法原理–>系统化知识结构、并尝试实践应用
跳出算法(尤其是数学公式)
关注原理及解决问题的思路
遥感数字图像处理
- 遥感数字图像处理
- 一、数字图像基础
- 二、常见遥感图像文件存储格式
- 三、空间域处理方法
- 3.2 数值运算
- 3.2.1 单波段点运算
- 3.2.2单波段领域运算
- 3.2.3 多波段运算
- 3.3 集合运算
- 3.3.1空间操作
- 3.3.2波段操作
- 3.4 逻辑运算
- 3.5 数学形态学运算
- 3.5.1 腐蚀
- 3.5.2 膨胀
- 3.5.3二值形态学
- 3.5.4 灰度形态学腐蚀膨胀
- 四、变换域处理方法
- 4.2主成分变换
- 4.3最小噪声分离变换
- 4.4缨帽变换
- 4.5 傅里叶变换
- 4.6 小波变换
- 4.7 颜色空间变换
- 4.7.1CMYK颜色空间
- 4.7.2 HSI颜色空间
- 4.7.3 颜色空间的相互转换
- 第五章 辐射校正
- 5.1辐射校正概述
- 5.2 传感器校正
- 5.3 大气校正
- 5.3.1大气校正统计模型
- 5.3.2 大气校正物理模型
- 5.4 地形及太阳高度角校正
- 5.4.1 余弦校正(地形)
- 5.4.2 半经验校正(地形)
- 5.4.3 太阳高度角校正(太阳)
- 第六章 几何校正
- 6.1 遥感图像的几何变形
- 6.2 遥感图像的几何校正
- 6.2.1几何精校正的过程与方法:
- 第七章 图像去噪声
- 7.1 噪声分类
- 7.3空间域去噪声
- 7.3.1均值滤波
- 7.3.2 中值滤波
- 7.3.3边缘保持平滑滤波
- 7.3.4数学形态学去噪
- 7.4变换域去噪声
- 7.4.1 傅里叶变换去噪声
- 7.4.2 小波变换去噪声
- 第八章图像增强
- 8.1 空间域图像增强
- 8.1.1变换增强
- 8.1.2 直方图调整图像增强
- 8.1.3 反锐化增强
- 8.2 变换域图像增强
- 8.3伪彩色处理
- 8.4图像融合
- 第9章 感兴趣目标及对象提取
- 9.1 图像分割
- 9.1.1阈值分割法
- 9.1.2 边界分割法
- 9.1.3 区域提取分割法
- 9.1.4 形态学分水岭分割
- 9.2 二值图像处理
- 9.2.1四近邻与八近邻
- 9.2.2四连通和八连通
- 9.2.3内部点与边界点
- 9.2.4 空洞点填补和碎块消除
- 9.3 对象提取
- 9.2.3内部点与边界点
- 9.2.4 空洞点填补和碎块消除
- 9.3 对象提取
一、数字图像基础
数字图像类型:
黑白图像:二值图像,灰度值要么是0要么是1
灰度图像:RGB三个通道的值是相同的,(128,128,128)表示灰色,(255,255,255)表示白色
伪彩色图像:也是单波段图像,只是每个灰度值对应于颜色空间模型中的某一种颜色。R、G、B值是三个不完全相同的数值,表现为彩色。(255,0,0)红色

伪彩色单波段,假彩色三波段
标准假彩色图像:近红外波段、红光波段、绿光波段(4、3、2)
统计并查看直方图

实验二:波段运算-计算VDVI
打开波段运算框

原始数据为Byte型,波段数据有小数,为了避免出错,将数据变为float浮点型。为了避免分母为0,避免出错,在分母前加一个极小值。

输入公式进入赋值阶段,b1对应近红外波段,b2对应红光波段

采用植被指数计算器计算VDVI

二、常见遥感图像文件存储格式
开放式:有两个文件(头文件+数据文件)
封装式存储格式:jpeg格式、tiff格式、bmp格式
tiff格式:文件头、标识信息区、图像数据区
偏移量–>类似于指针,标识具体位置的地方

查看图像的头文件信息

打开ASCII码数据格式的文件

封装式二进制遥感图像的读取

先用右侧工具箱中的DataViewer打开二进制文件,如中间那图所示,再根据数据说明,输入字节起始位置,在View_Format选择对应的数据类型,就可以看到头文件对应的信息。
三、空间域处理方法
3.2 数值运算
3.2.1 单波段点运算
输入是单个像元的数值,输出也是单个数值,只是经过了一个函数,没有改变空间信息

线性点运算的应用:
用于图像的增强,将灰度值范围进行拉伸拓展,那么图像的细节信息就比较明显了。
分段线性点运算的应用:
突出感兴趣进行拉伸灰度值范围,抑制不感兴趣的灰度区域,进行压缩灰度值范围。

非线性点运算
指数变换:输入比较窄(压缩比较暗的部分)、输出宽的(增强亮的部分)

应用:高斯拉伸、平方根拉伸
3.2.2单波段领域运算
领域窗口:
奇数窗口(比如3x3),有有一个中心像元。
滑动、跳跃窗口领域运算:
把中心像元赋给它

跳跃窗口,步长就是窗口的大小,不重叠,不用中心像元赋值,而是窗口中所有值都统一赋值。
卷积运算
对应相乘相加赋值中心。
应用:图像滤波(图像去噪声、图像增强)
领域统计(池化)
3.2.3 多波段运算
代数运算
eg:NDVI的计算
涉及到加法、减法、比值运算
剖面运算
提取剖面-得到单波段图像–开展单波段运算
3.3 集合运算
3.3.1空间操作
- 图像裁剪:注意边界,不然数据会缺失

DEM:数字高程模型数据,每个像元代表的是一个地表的高度、高程
坡度的计算:用两个像元的高度差除以分辨率(即两点中心的距离)
图像镶嵌 :和衣服坏了打补丁一样。

3.3.2波段操作
波段提取、波段叠加(同一地理范围)
3.4 逻辑运算
求反运算
与运算
或运算
异或运算(相同为0,不同为1)
逻辑运算综合应用

3.5 数学形态学运算
3.5.1 腐蚀

依次遍历,有与结构元素相同的就赋值为1,不相同赋值为0
操作示例:

原始的NDVI图像中间是有细小的田埂的,将其值进行二值运算,大于0.7的赋值为1,小于0.7的赋值为0,就得到了中间的那张图。采用结构元素(中间一行为1)进行腐蚀运算,这样田埂就可以消除。
3.5.2 膨胀

依次遍历一遍,有交集就赋值为1。

消除空洞点
3.5.3二值形态学
开运算
先腐蚀后膨胀运算

闭运算
先膨胀后腐蚀
3.5.4 灰度形态学腐蚀膨胀
腐蚀:


相减取最小值

相加取最大值
开运算
先腐蚀、后膨胀
闭运算
先膨胀后腐蚀
灰度形态学运算:去椒盐噪声(胡椒和白盐,胡椒是灰色的点,白盐是白色的点撒在这上面)
实验
图像裁剪和拼接
四、变换域处理方法
不要纠结数学公式
4.2主成分变换
最后那个主成分(pc7)看起来有噪声,可以把它去掉,或者甚至把后面几个主成分都去掉,把前面三个主成分(已占信息量99%)进行反变换,就可以实现信息压缩,去噪声
去相关、信息压缩、特征提取(最大的用处)
4.3最小噪声分离变换
估计噪声,进行主成分变换,调整后再进行主成分变换。
4.4缨帽变换
植物、土壤
Y = cX+a

应用也是那几个方向,特征提取(最关键)

缨帽变换后的图像分别对应亮度、绿度、湿度分量
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oXroXmoY-1676622345583)(null)]
缨帽变换后可以得到三个分量,可以突出显示水体、植被、岩石
4.5 傅里叶变换
通过频率来分离不同信号的方法!
变换后噪声通常在高频部分 

4.6 小波变换
小波:由零开始由零结束,中间为一段震荡的波


应用:图像压缩、图像去噪、图像增强、边缘检测、图像分割
4.7 颜色空间变换
4.7.1CMYK颜色空间
打印的时候一般用CMYK颜色空间

RGB颜色空间是加法混色
CMY颜色空间是减法混色

4.7.2 HSI颜色空间
色调H、色饱和度S、亮度I

4.7.3 颜色空间的相互转换

第五章 辐射校正
5.1辐射校正概述
辐射校正:消除或修正因辐射误差而引起的图像畸变这一过程
为了获取地表实际反射的太阳辐射亮度值或反射率,辐射校正通常包含以下三方面的处理:
传感器校正,即辐射定标
大气校正
地形及太阳高度角校正
5.2 传感器校正
消除传感器本身的误差
把DN值转化为辐射亮度或反射率
5.3 大气校正
为什么全色波段不做大气校正?大气校正是为了消除大气吸收散射的影响
首先从遥感的原理可以知道波长越短穿透能力越弱,所以蓝光波段最容易收到水汽影响(散射、反射等等),从蓝光到近红外水汽影响逐渐减弱,所以要对多光谱进行大气校正。而我们常见遥感数据的全色波段是不包含蓝光范围的,所以不再需要进行大气校正。
5.3.1大气校正统计模型
-
内部平均相对反射率法
假定图像内部地物充分混杂,将整幅图像的平均辐射光谱值作为参考光谱。计算像元光谱曲线与参考光谱曲线的比值,作为反射率。
计算方法:某波段像元灰度值/该波段所有像元灰度平均值
不足:当图像中出现强吸收的区域,平均值会变低。对于高反射率区域反射率会大于1,出现假的反射峰
-
平场域法
选择一块面积大且亮度高而光谱响应曲线变化平缓期的区域,如沙漠、水泥地建立平场域。
用灰度值除以平场域的灰度值
-
对数残差法
通过比值运算,把地形和光照因子给消掉
-
经验线性法
R=k∗DN+bR=k*DN+bR=k∗DN+b
就是反射率R作为纵坐标,DN值作为横坐标,线性回归拟合出一条直线。
样本点各向同性,光谱跨度要大,样本种类多,保持统一海拔。
5.3.2 大气校正物理模型
大气校正物理模型基础

6S模型
MODTRAN模型
ENVI处理时:

在输入辐射定标后的图像后,弹出辐射亮度单位转换设置窗口,选择单一转换因子,关于单一转换因子的设定single scale factor这里,若在辐射定标的输出比例因子的设置时,使用的默认参数1,这里设置为10,如果使用的FLAASH默认参数,这里设置为1
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wpqkGix3-1676622344074)(https://gitee.com/meiruni/image/raw/master/img/%E5%A4%A7%E6%B0%94%E6%A0%A1%E6%AD%A3%E5%8F%82%E6%95%B0.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8jkA1ojH-1676622344075)(https://gitee.com/meiruni/image/raw/master/img/%E5%A4%9A%E5%85%89%E8%B0%B1%E8%AE%BE%E7%BD%AE.png)]

这些公式不用记忆,都是根据前面讲的大气校正物理模型来构建的,只是对有些假设条件,比如大气模式、气溶胶模式不一样
5.4 地形及太阳高度角校正
消除由地形引起的辐射亮度误差,使坡度不同但反射性质相同的地物在图像中具有相同的亮度值
5.4.1 余弦校正(地形)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TNX1ocs3-1676622344078)(https://gitee.com/meiruni/image/raw/master/img/image-20220921154120734.png)]
主要是用了入射角和天顶角这样一个校正
如果i比较大,趋向于90°的话,cosi就趋向于0了,那么结果会很大。所以会出现过度校正的情况(校正的值远远高于实际的值)
5.4.2 半经验校正(地形)

5.4.3 太阳高度角校正(太阳)
通过将太阳高度光由倾斜照射变为垂直照射

太阳高度角校正就是用来除以sin或者cos就好。

第六章 几何校正
6.1 遥感图像的几何变形
遥感图像上各种地物的位置、形态、尺寸、方位等特征与其在某个图像投影的参照系统中表达要求不一致。
静态误差:传感器相对地面静止
动态误差:地球旋转
内部误差:传感器自身原因
外部误差:传感器正常,由其他各种因素造成的误差
几何变形的影响因素:
-
遥感平台位置和运动状态变化
-
地形起伏(像点位移)见4.2节
- 高(低)点在图像上的像点相对于平面点向远离(靠近)图像中心方向移动
-
地球表面曲率
地球表面是弧形的,不是直的,向图像中心移动
-
大气折射
-
地球自转
对于扫描类的传感器,地球自转会让影像偏离(错位)
6.2 遥感图像的几何校正
将多种因素引起的变形纠正过来
几何粗纠正(一般下载下来的图像都已经系统误差校正过)
几何精校正:利用GCP地面控制点进行
6.2.1几何精校正的过程与方法:
-
地面控制点选取
尽量选择图像上有明显、清晰的定位识别标志,如道路交叉点。
-
多项式校正模型
待校正的图像上的图像坐标(x,y)与真实地理坐标(X,Y)之间的函数映射关系
x是错误点横坐标,它与正确点(X,Y)存在一种函数关系(也就是通过已知的x,y,可以求出未知的X,Y)如果偏的比较明显,那么这个多项式函数相对就复杂些,即需要求出更多的参数aija_{ij}aij,bijb_{ij}bij使其满足这个方程。
当N=2时,M最少控制点数为6,M=(N+1)∗(N+2)2M=\frac{(N+1)*(N+2)}{2}M=2(N+1)∗(N+2)也就是最少需要在待校正的图像上找6个点,当然找的越多校正效果越好
-
坐标变换
直接校正法(从待校正图像出发)
利用步骤2求得的方程,可以根据(x,y)求出(X,Y),可以重新定位,然后把对应的像元值也赋予过来。但是原始图像存在几何变形,所以有些可能重复,难得到均匀排列的像元值。
间接校正法
从空白的校正后的图像出发,将(X,Y)定位,然后赋予对应像元值。
-
灰度重采样
运用步骤2函数后算出的(X,Y)坐标有些会出现小数点,这时候就得让它重新赋值。方法如下:
-
第一种:最近邻法(离哪个点近值就赋给哪个点)—简单但会造成像元值不连续
-
第二种:双线性内插法
根据距离赋予权重,加权求和。最常用,解决不连续,但计算增加 -
第三种:三次卷积内插法
。虽然边缘有所增强,但计算量太大
-
-
几何校正类型
-
图像到图像的几何校正
-
图像到地图
告诉经纬度
-
具有已知几何信息的几何校正
先建立一个几何查找表
-
正射校正(加Z轴)
正射校正不仅能够实现常规的几何校正功能,还能通过测量高程点和DEM来消除地形起伏引起的图像几何畸变,提高图像的几何精度。
经纬度更加精确
-
-
图像配准与投影转换

几何校正注重的是数据本身的处理,目的是为了对数据的一种真实性还原。
图像配准注重的是图与图(数据)之间的一种几何关系,其目的是为了和参考数据达成一致,不考虑参考数据坐标是否正确。


第七章 图像去噪声
7.1 噪声分类


随机噪声模型






a对应胡椒,b对应盐
噪声类别如何识别?
通常选择图像中白色的墙壁、灰色的地板,查看它的直方图形状来判断其噪声类型。

理论上单色的灰度值是一根柱子,比如白色的墙壁,255。如果它变了形状说明就有噪声。快接近255的时候特别高


混入噪声后直方图就变成了上面的这个形状

7.3空间域去噪声
空间域去噪声是利用待处理像元领域窗口内的像元进行均值、中值或其他运算得到新的灰度值,并将其赋给待处理像元,
通过对增幅图像进行窗口扫描及运算,达到去除噪声的目的。
空间域去噪方法:
7.3.1均值滤波
遍历+卷积运算,把均值赋给中心像元
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-i1HEBxdx-1676622344097)(https://gitee.com/meiruni/image/raw/master/img/QQ%E6%88%AA%E5%9B%BE20220926154506.png)]
7.3.2 中值滤波
将中间的值赋予给中间像元
7.3.3边缘保持平滑滤波
中值滤波和均值滤波会将图像变得模糊,也就是图像变平滑了,主要是上图像的边缘不突出了。
边缘保持滤波设计思路:判断一下如果是边缘那么不要它滤波,让它去掉。
K邻近均值滤波
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TsO4cCRh-1676622344098)(https://gitee.com/meiruni/image/raw/master/img/QQ%E6%88%AA%E5%9B%BE20220926155733.png)]
7.3.4数学形态学去噪
开运算:去峰值噪声
闭运算:去低谷噪声
详看3.5节
7.4变换域去噪声
7.4.1 傅里叶变换去噪声
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fhrMKqao-1676622344098)(https://gitee.com/meiruni/image/raw/master/img/image-20220926161751492.png)]
可以看第4.5节,把图像转化成一个频谱图,中间是频率低的部分越往外频率越高。

低通滤波器:
就是低频的能通过,高频的被阻止了






带阻滤波器:
带阻就是将这个条带的频率阻止了


陷波滤波器:
某几个点的频率被阻止了


理想-巴特沃斯-高斯滤波器
它们的边界由区分明确到越来越模糊
7.4.2 小波变换去噪声
利用小波变换将高频分解出来,再将高频的系数置为0,然后重构出小波去噪后的图像。

小波变换去噪方法:小波阈值法
硬阈值、软阈值
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oO2zcZBL-1676622344111)(https://gitee.com/meiruni/image/raw/master/img/image-20220926165059235.png)]
第八章图像增强
图像增强不一定增加了图像信息、图像增强不一定改变了图像的数据内容。
目的是为了改善图像的视觉效果,帮助我们更好的发现或识别图像中的某些特征。

8.1 空间域图像增强

灰度值经过某一种函数,让灰度值变化
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Ou4JOgss-1676622344113)(https://gitee.com/meiruni/image/raw/master/img/image-20220927163514300.png)]
8.1.1变换增强
线性变换

分段线性变换

反比变换
将灰度值取反
幂次变换
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CChTrcf0-1676622344117)(https://gitee.com/meiruni/image/raw/master/img/image-20220927163821726.png)]
对数变换

反对数变换

8.1.2 直方图调整图像增强
直方图匹配
将一幅图像的直方图参照另一幅进行变换,使得两幅图的直方图相近或相似。
作用:调整两幅图像的色调差异,使得图像重叠区域的色调过渡柔和,改善图像融合和图像镶嵌效果。
直方图均衡化
对图像进行非线性拉伸,重新分配图像像素值,使一定灰度范围内的像素数量大致相同。
8.1.3 反锐化增强
反锐化掩膜图像增强
-
领域运算图像增强
领域运算中的锐化滤波器,将图像中灰度值缓慢变化的区域滤去,使图像反差增加。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OpKX1m1J-1676622344119)(https://gitee.com/meiruni/image/raw/master/img/image-20220927170749732.png)]
-
反锐化掩膜图像增强
将图像进行卷积平滑操作,然后将原始图像与平滑操作后的图像相减,就得到了图像边缘信息,再把边缘信息给增大(给它都乘1个数),最后再将边缘信息和原图相加,这样图像边缘信息就增强了。
-
灰度形态学梯度运算图像增强


8.2 变换域图像增强
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RcldY47n-1676622344121)(https://gitee.com/meiruni/image/raw/master/img/image-20220927163002210.png)]
8.3伪彩色处理

8.4图像融合
图像融合类型3大类:
- 像元(数据)级融合:把分辨率的灰度图与低分辨率的多光谱图像进行融合,从而得到一幅高空间分辨率的彩色合成影像。
- 特征级融合:先对原始图像提取某些特征,比如边缘、纹理特征再来融合。
- 决策级融合:把信息融合在一块,比较抽象
图像融合条件:
-
图像空间信息匹配:空间的位置、图像行列数一致,涉及图像配准和低分辨率影像的重采样
-
图像光谱信息匹配:同名像元点的灰度值具有良好的相关性
最好是同一传感器在同一时间获得的两种影像
图像融合方法:
-
空间域代数转换

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8jINlMqF-1676622344125)(https://gitee.com/meiruni/image/raw/master/img/image-20220927173955955.png)]
假如低空间分辨率为30米,高空间分辨率为10米,10和30是一个三倍的关系,一个高对应9个低,x方向有3个,y方向有3个,3*3=9,它就是把九个像元灰度值取出来做分母(跳跃窗口)

-
变换域替代法(偷梁换柱法)

只适用于RGB3个波段

适用于多个波段替换是有条件的,全色波段来替换的时候,要黑白颠倒,做一个反比变换,然后还得把值域范围拉伸到和第一主成分一样,然后替换,最后主成分反变换。

高分辨率图像先和低分辨率图像进行配准,然后挨个波段进行直方图匹配,如果有3个波段,就要匹配3次,得到3个直方图匹配后的结果,然后各自都进行小波变换,把高频替换,最后反变换
第9章 感兴趣目标及对象提取
感兴趣目标是用户最为关注的地方
提取流程

9.1 图像分割
(重点是各类图像分割方法的优缺点)
9.1.1阈值分割法
给定一个灰度值T分割目标区域和灰度区域,如果<T赋值为0,>=T赋值为1
核心:阈值的最优选取
9.1.2 边界分割法
沿着目标周边闭合的边界线将其包围的区域剪切出来
边缘检测方法
-
基于微分算子的边缘检测
算梯度值,边缘梯度值高
-
综合边缘检测
-
形态学梯度的边缘检测
边缘连接
9.1.3 区域提取分割法
-
区域生长分割法(是一种迭代方法)
首先在待分割区域选取一小块作为种子区域,然后逐渐将挨着它的与其性质相同或相似的合并进来。
好坏取决于种子点的选取,生长准则和终止条件
种子点的选取
一般通过先验知识选取,如果缺乏先验知识常常借助生长所用准则对图像进行聚类分析
生长准则
终止条件
区域生长法
-
区域分裂合并分割法
9.1.4 形态学分水岭分割
9.2 二值图像处理
9.2.1四近邻与八近邻
9.2.2四连通和八连通
9.2.3内部点与边界点
9.2.4 空洞点填补和碎块消除
9.3 对象提取
二值图像有多个连通域时,需要给它贴标签
贴标签时得区分四连通域和八连通域
判断其是否属于八连通区域

这是贴标签的结果,对于每一个连通域都有一个单独的编号。
如何提取边界?
首先可以用3x3的窗口腐蚀一下,腐蚀后边界就收缩了,它向里面收缩了一个像元,完了之后,用原图像减去腐蚀的结果,实际上也就把边界的像元提取出来了,然后把边界的矢量数据(x,y)坐标找出来,将(x,y)坐标—点与点之间连成线。
master/img/image-20220928143541846.png" alt=“image-20220928143541846” style=“zoom:50%;” />
9.2.3内部点与边界点
9.2.4 空洞点填补和碎块消除
9.3 对象提取
二值图像有多个连通域时,需要给它贴标签
贴标签时得区分四连通域和八连通域
判断其是否属于八连通区域
[外链图片转存中…(img-fvnh8A6L-1676622344130)]
这是贴标签的结果,对于每一个连通域都有一个单独的编号。
如何提取边界?
首先可以用3x3的窗口腐蚀一下,腐蚀后边界就收缩了,它向里面收缩了一个像元,完了之后,用原图像减去腐蚀的结果,实际上也就把边界的像元提取出来了,然后把边界的矢量数据(x,y)坐标找出来,将(x,y)坐标—点与点之间连成线。
相关文章:
遥感数字图像处理
遥感数字图像处理 来源:慕课北京师范大学朱文泉老师的课程 遥感应用:遥感制图、信息提取 短期内了解知识结构–>有选择的剖析经典算法原理–>系统化知识结构、并尝试实践应用 跳出算法(尤其是数学公式) 关注原理及解决问…...
深度学习常用的python函数(一)
由于我只简单的学过python和pytorch,其中有很多函数的操作都还是一知半解的,其中有些函数经常见到,所以就打算记录下来。 1.zip zip(*a):针对单个可迭代对象压缩成n个元组,元组数量n等于min(a中元素的最小长度) a [(1, 2), (3…...
2023年美国大学生数学建模A题:受干旱影响的植物群落建模详解+模型代码(一)
目录 前言 一、题目理解 背景 解析: 要求 二、建模 1.相关性分析 2.相关特征权重 只希望各位以后遇到建模比赛可以艾特认识一下我,我可以提供免费的思路和部分源码,以后的数模比赛只要我还有时间肯定会第一时间写出免费开源思路&…...
PPS文件如何转换成PPT?附两种方法
在工作中,PPS文件的使用还是很广泛的,因为作为幻灯片放映文件,点击后就能直接播放,十分方便。但如果想要修改PPS里的内容,PPS是无法编辑的,我们需要把文件转换成PPT,再进行修改。 那PPS文件如何…...
ParallelsDesktop安装【亲测可行】
我这边安装的是macos最新系统 (Ventura13.2) 本文参考这篇文章安装,但是你完全按照这篇文章会报错,具体可行操作记录如下 一、下载软件和补丁 1、点这里去下载补丁18.0.1 2、点这里去下载对应版本的ParallelsDesktop18.0.1,安装上到试用这里…...
在 Python 中只接受数字作为用户输入
只接受数字作为用户输入: 使用 while True 循环进行循环,直到用户输入一个数字。使用 float() 类尝试将值转换为浮点数。如果用户输入了一个数字,请使用 break 语句跳出循环。 while True:try:# 👇️ use int() instead of floa…...
【集合】JAVA基础篇(二)
目录一、java常用集合1、Java集合接口的作用2、Java集合常用实现类的作用二、Collection 常用的方法三、List 集合接口1、ArrayList类的常用方法2、LinkList类中的方法3、Vector4、ArrayList 类和 LinkedList 类的区别四、Set 集合1、HashSet 类2、TreeSet 类3、HashSet 和 Tre…...
机房意外掉电导致Elasticsearch的部分index无数据的修复过程
环境 :华为大数据集群FusionInsight V100R002C800SPC200、Elasticsearch 6.1.3、Kibana问题产生原因:因机房意外掉电导致集群部分机器两次掉电导致Elasticsearch重启,Elasticsearch重启后看似正常但某些index无数据。经排查判断为Elasticsearch的部分ind…...
Spring入门案例三:注解进行引用类型的自动装配
本系列文章将会带领大家进行Spring的全面学习,持续关注我,不断更新中… 一.案例分级 简单解析:配置类替代以前的配置文件,实体类提供对象,业务类中有实体类的引用对象,在业务层中实现引用类的自动装配。 二.各层代码…...
kubernet + kubevirt + ceph 汇总文档
目的 1 创建 kubenetes 集群 2 kubenetes 集群上部署 kubevirt 3 kubernetes 支持 ceph 存储 4 VMI 可以存储在 ceph rbd 存储中并正常使用 参考部署文档 名称连接备注centos8 + kubernetes 1.24 master/node 节点部署文档kubernetes 集群部署kubectl top node 使用方法部署文档…...
软件测试项目实战(附全套实战项目教程+视频+源码)
开通博客以来,我更新了很多实战项目,但一部分小伙伴在搭建环境时遇到了问题。 于是,我收集了一波高频问题,汇成本篇,供大家参考,避免重复踩坑。 如果你还遇到过其他坑和未解决的问题,可在评论区…...
Python seek()和tell()函数详解
在讲解 seek() 函数和 tell() 函数之前,首先来了解一下什么是文件指针。我们知道,使用 open() 函数打开文件并读取文件中的内容时,总是会从文件的第一个字符(字节)开始读起。那么,有没有办法可以自定指定读…...
数据库系统:1. 绪论
更好的阅读体验\huge{\color{red}{更好的阅读体验}}更好的阅读体验 文章目录1.1 数据库系统概述1.1.1 基本概念数据(data)数据库(DataBase, DB)数据库管理系统(DataBase Management System, DBMS)数据库系统…...
Android App开发基础
文章目录一 App的开发特点1.1 App的运行环境1.2 App开发语言1.3 java语言开发1.4 Kotlin语言开发1.5 XML1.6 App连接的数据库二 App的工程结构2.1 App工程目录结构2.2 构建工具Grade2.3 编译配置文件build.gradle2.4 运行配置文件AndroidManifest.xml2.4.1 application2.4.2 ac…...
力扣-分数排名
大家好,我是空空star,本篇带你了解一道简单的力扣sql练习题。 文章目录前言一、题目:178. 分数排名二、解题1.错误示范①提交SQL运行结果2.错误示范②提交SQL运行结果3.正确示范①提交SQL运行结果4.正确示范②提交SQL运行结果5.正确示范③提交…...
图文详解Ansible中的变量及加密
文章目录一、变量命名二、变量级别三、.变量设定和使用方式1.在playbook中直接定义变量2.在文件中定义变量3.使用变量4.设定主机变量和清单变量5.目录设定变量6.用命令覆盖变量7.使用数组设定变量8.注册变量9.事实变量10.魔法变量四、JINJA2模板五、 Ansible的加密控制练习1.用…...
silicon labs平台通过串口升级固件方案
开发环境 windowssimplicity studio 5geck sdk 4.1 一 bootloader 新建BGAPI UART DFU工程 工程新建完成以后看一下linkerfile.ld文件的flash和ram的配置跟自己的application工程是否对应得上 配置串口波特率和引脚 默认使用PB0进入bootloader模式,这里改成Non…...
MySQL 派生表产生关联索引auto_key0导致SQL非常的慢
相同的SQL在maridb运行0.5秒,在MySQL8.0.26中运行要19秒 官方MySQL在处理子查时,优化器有个优化参数derived_merge,MySQL7开启添加,默认on.很多情况可以自动优化派生表,避免创建临时索引auto_key0和生成临时表数据做…...
计算机网络期末复习汇总(附某高校期末真题试卷)
文章目录一、选择题二、填空题三、名词解析四、简答题五、高校期末真题一、选择题 1、传输延迟时间最小的交换方法是( A ) A.电路交换 B.报文交换 C.分组交换 D.信元交换 2、在OSI七层结构模型中,处于数据链路层与运输层之间的是( B) A、物…...
2月,还是不要跳槽
新年已经过去,马上就到金三银四跳槽季了,一些不满现状,被外界的“高薪”“好福利”吸引的人,一般就在这时候毅然决然地跳槽了。 在此展示一套学习笔记 / 面试手册,年后跳槽的朋友可以好好刷一刷,还是挺有必…...
day52 ResNet18 CBAM
在深度学习的旅程中,我们不断探索如何提升模型的性能。今天,我将分享我在 ResNet18 模型中插入 CBAM(Convolutional Block Attention Module)模块,并采用分阶段微调策略的实践过程。通过这个过程,我不仅提升…...
基于Uniapp开发HarmonyOS 5.0旅游应用技术实践
一、技术选型背景 1.跨平台优势 Uniapp采用Vue.js框架,支持"一次开发,多端部署",可同步生成HarmonyOS、iOS、Android等多平台应用。 2.鸿蒙特性融合 HarmonyOS 5.0的分布式能力与原子化服务,为旅游应用带来…...
Auto-Coder使用GPT-4o完成:在用TabPFN这个模型构建一个预测未来3天涨跌的分类任务
通过akshare库,获取股票数据,并生成TabPFN这个模型 可以识别、处理的格式,写一个完整的预处理示例,并构建一个预测未来 3 天股价涨跌的分类任务 用TabPFN这个模型构建一个预测未来 3 天股价涨跌的分类任务,进行预测并输…...
macOS多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用
文章目录 问题现象问题原因解决办法 问题现象 macOS启动台(Launchpad)多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用。 问题原因 很明显,都是Google家的办公全家桶。这些应用并不是通过独立安装的…...
sqlserver 根据指定字符 解析拼接字符串
DECLARE LotNo NVARCHAR(50)A,B,C DECLARE xml XML ( SELECT <x> REPLACE(LotNo, ,, </x><x>) </x> ) DECLARE ErrorCode NVARCHAR(50) -- 提取 XML 中的值 SELECT value x.value(., VARCHAR(MAX))…...
【服务器压力测试】本地PC电脑作为服务器运行时出现卡顿和资源紧张(Windows/Linux)
要让本地PC电脑作为服务器运行时出现卡顿和资源紧张的情况,可以通过以下几种方式模拟或触发: 1. 增加CPU负载 运行大量计算密集型任务,例如: 使用多线程循环执行复杂计算(如数学运算、加密解密等)。运行图…...
Maven 概述、安装、配置、仓库、私服详解
目录 1、Maven 概述 1.1 Maven 的定义 1.2 Maven 解决的问题 1.3 Maven 的核心特性与优势 2、Maven 安装 2.1 下载 Maven 2.2 安装配置 Maven 2.3 测试安装 2.4 修改 Maven 本地仓库的默认路径 3、Maven 配置 3.1 配置本地仓库 3.2 配置 JDK 3.3 IDEA 配置本地 Ma…...
算法岗面试经验分享-大模型篇
文章目录 A 基础语言模型A.1 TransformerA.2 Bert B 大语言模型结构B.1 GPTB.2 LLamaB.3 ChatGLMB.4 Qwen C 大语言模型微调C.1 Fine-tuningC.2 Adapter-tuningC.3 Prefix-tuningC.4 P-tuningC.5 LoRA A 基础语言模型 A.1 Transformer (1)资源 论文&a…...
技术栈RabbitMq的介绍和使用
目录 1. 什么是消息队列?2. 消息队列的优点3. RabbitMQ 消息队列概述4. RabbitMQ 安装5. Exchange 四种类型5.1 direct 精准匹配5.2 fanout 广播5.3 topic 正则匹配 6. RabbitMQ 队列模式6.1 简单队列模式6.2 工作队列模式6.3 发布/订阅模式6.4 路由模式6.5 主题模式…...
掌握 HTTP 请求:理解 cURL GET 语法
cURL 是一个强大的命令行工具,用于发送 HTTP 请求和与 Web 服务器交互。在 Web 开发和测试中,cURL 经常用于发送 GET 请求来获取服务器资源。本文将详细介绍 cURL GET 请求的语法和使用方法。 一、cURL 基本概念 cURL 是 "Client URL" 的缩写…...
